我刚刚开始使用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