Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 计算apache spark中每个单词的出现次数_Scala_Apache Spark - Fatal编程技术网

Scala 计算apache spark中每个单词的出现次数

Scala 计算apache spark中每个单词的出现次数,scala,apache-spark,Scala,Apache Spark,上面的代码段将计算包含单词ERROR的行数。是否有一个类似于“contains”的简化函数,它会返回单词的出现次数 假设该文件是以Gig为单位的,我希望使用spark clusters对工作进行视差化。只需计算每行的实例数,并将它们相加: val sc = new SparkContext("local[4]", "wc") val lines: RDD[String] = sc.textFile("/tmp/inputs/*") val errors = lines.filter

上面的代码段将计算包含单词ERROR的行数。是否有一个类似于“contains”的简化函数,它会返回单词的出现次数


假设该文件是以Gig为单位的,我希望使用spark clusters对工作进行视差化。

只需计算每行的实例数,并将它们相加:

  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())

我认为
map
filter
应该通过Spark流水线连接在一起,因此如果这些优化能够减少内存消耗,我会感到惊讶。Spark永远不应该最终实现完整的中间
行。map(…)
数据集;我认为简单的
行.filter(…).count()
应该非常有效。@JoshRosen有趣。谢谢关于内存消耗,我指的是结果RDD的大小,因为RDD[Int]应该是标记器。scala:39:value collect不是Int[error]val errors=lines的成员。flatMap{line=>if(line.contains(“error”))Some(1)else None}.reduce(+2;).collect????但是上面的代码片段显示了一种计算包含错误的行数而不是错误发生次数的方法。@Siva sorry。不需要
收集
<代码>减少
已经是触发RDD计算的操作。-更正了答案。谢谢。但是你怎么知道单词错误的发生呢?比行数还要多?
val errorCount = lines.map{line => line.split("[\\p{Punct}\\p{Space}]").filter(_ == "ERROR").size}.reduce(_ + _)