這裏很新。我試圖將數據幀(2列a和b)轉換爲case類,在列A上使用函數mathAdd
,並將列放在新列C.我知道函數.withColumn
,但我真的不知道如何把這些放在一起。以下是我對評論的嘗試。任何人都可以請幫忙?非常感謝。 *編輯:我想要使用case類的原因之一是因爲我想保存這些函數以供重用。如何在Scala case類中應用函數來轉換數據框
dfTest.createOrReplaceTempView("testTable")
case class testclass (a:Int,b:String){
var result = 0
def mathAdd ={
if (b=="apple"){
result=a+1
} else{
result=a+2
// but how to put 'var result' into a column?
}
}
}
var toTestClass = sqlContext.table("testTable").as[testclass]
toTestClass.mathAdd()
//After this how can I convert this testclass back to dataframe?
如果您必須將數據集轉換回數據幀,爲什麼如此複雜,當您已經有一個datafram e,您可以輕鬆實現數據框所需的內容嗎? –
因爲在現實生活中,功能會更復雜,對於數據幀API可能太複雜了。 – user4046073
不,我猜不。請參閱下面的答案,如果您仍然認爲它很複雜,那麼我們將研究您認爲會很複雜的案例分類方法。 –