scan()括号内表示两个_ 做对应的值操作,这里加减乘除应该都可以,scan内的数字作为整个运算的第一个数,例如加法,那就是计算0,0+1,0+1+2,0+1+2+3,0+1+2+3+4,0+1+2+3+4+5,最后结果为0,1,3,6,10,15。其他运算同理。
package com.example.scan
import org.apache.spark.{SparkConf, SparkContext}
object scanExample {
def main(args: Array[String]):Unit = {
val conf =new SparkConf().setAppName("wordcount")
val sc =new SparkContext(conf)
val numbers: Seq[Int] = Seq(1, 2, 3, 4, 5)
val runningTotal: Seq[Int] = numbers.scan(2)(_ + _)
sc.stop()
}
}