我剛剛開始使用Scala/Spark,並且來自Java背景,我仍然試圖圍繞着不變性和Scala其他最佳實踐的概念。Scala實踐:列表和案例類
這是代碼從較大的程序的非常小的段:
交點被RDD(密鑰,(字符串,字符串))
OBS是(密鑰,(字符串,字符串))
數據僅僅是一個我上面定義的案例類。
val intersections = map1 join map2
var listOfDatas = List[Data]()
intersections take NumOutputs foreach (obs => {
listOfDatas ::= ParseInformation(obs._1.key, obs._2._1, obs._2._2)
})
listOfDatas foreach println
此代碼的工作原理和做我需要做的事情,但我想知道是否有更好的方式來做到這一點。我每次迭代都使用一個變量列表並用一個新列表重寫它,並且我確定必須有更好的方法來創建一個填充了ParseInformation方法調用結果的不變列表。此外,我還記得在某處讀到的,不是直接訪問元組值,而是我已經完成的方式,應該在函數中使用case類(作爲我認爲的部分函數?)以提高可讀性。
在此先感謝您的任何意見!
哦,賈斯廷皮胡尼的回答比我的好。 – earldouglas