Els*_*yed 7 scala bigdata word-count apache-spark
在scala的第一个示例中,我无法理解reduceByKey(_ + _)
object WordCount {
def main(args: Array[String]): Unit = {
val inputPath = args(0)
val outputPath = args(1)
val sc = new SparkContext()
val lines = sc.textFile(inputPath)
val wordCounts = lines.flatMap {line => line.split(" ")}
.map(word => (word, 1))
.reduceByKey(_ + _) **I cant't understand this line**
wordCounts.saveAsTextFile(outputPath)
}
}
Run Code Online (Sandbox Code Playgroud)
Sle*_*idi 14
在将函数应用于两个参数后,Reduce采用两个元素并生成第三个元素.
您显示的代码等同于以下内容
reduceByKey((x,y)=> x + y)
Run Code Online (Sandbox Code Playgroud)
Scala不是定义虚拟变量并编写lambda,而是足够聪明地弄清楚你尝试实现的是func在它接收的任何两个参数上应用(在本例中为sum),因此语法
reduceByKey(_ + _)
Run Code Online (Sandbox Code Playgroud)