val sc = new SparkContext("local[4]", "wc")
val lines: RDD[String] = sc.textFile("/tmp/inputs/*")
val errors = lines.filter(line => line.contains("ERROR"))
// Count all the errors
println(errors.count())
上面的代码段将计算包含ERROR一词的行数。是否有一个类似于“contains”的简化函数,它会返回单词的出现次数?
说这个文件是用Gigs的,我想用火花簇来平衡工作量。
答案 0 :(得分:1)
只计算每行的实例并将它们加在一起:
val errorCount = lines.map{line => line.split("[\\p{Punct}\\p{Space}]").filter(_ == "ERROR").size}.reduce(_ + _)