Spark - 过滤器与列表添加

时间:2018-03-12 04:21:41

标签: scala apache-spark rdd

val rtnRdd = originRdd.filter( ~~~ ) // 1

// 2
var eventList: List[myType] = Nil
originRdd.foreach{
    if( some condition)
        eventList :+= myType( ~~ )
}
// eventList convert to RDD

哪种方式在火花中是正确而快速的方式?如果' 1'是正确的方法,为什么我不应该使用' 2'代码风格?

1 个答案:

答案 0 :(得分:1)

第二种风格不受青睐,因为函数式编程倾向于更多地使用表达式而不是语句。在第二个陈述中,我们正在使用陈述。声明会产生副作用。除此之外,您正在进行分配编程,这也会导致副作用。并行化很难。有关详细信息refer