下面是我在reduceByKey上试用的代码:
import org.apache.spark.rdd.RDD
import org.apache.spark.SparkContext._
import org.apache.spark.SparkContext
import scala.math.random
import org.apache.spark._
import org.apache.spark.storage.StorageLevel
object MapReduce {
def main(args: Array[String]) {
val sc = new SparkContext("local[4]" , "")
val file = sc.textFile("c:/data-files/myfile.txt")
val counts = file.flatMap(line => line.split(" "))
.map(word => (word, 1))
.reduceByKey(_ + _)
}
}给出编译器错误:“无法解析symbol reduceByKey”
当我将鼠标悬停在reduceByKey的实现上时,它给出了三种可能的实现,因此似乎正在找到它?:

发布于 2014-09-16 18:15:14
您需要将以下导入添加到文件中:
导入org.apache.spark.SparkContext._
Spark文档:
“在Scala中,只要您在程序中导入org.apache.spark.SparkContext._以启用Tuple2的隐式转换,这些操作在包含Spark对象(语言中的内置元组,通过简单地编写(a,b)即可创建)、的RDD上自动可用。键-值对操作在PairRDDFunctions类中可用,如果您导入转换,该类将自动环绕元组的RDD。”
发布于 2015-07-10 01:21:34
似乎在Spark 1.4.x中记录的行为发生了变化。要让IntelliJ识别隐式转换,您现在必须添加以下导入:
import org.apache.spark.rdd.RDD._发布于 2014-06-12 22:30:16
我注意到有时IJ无法解析通过 https://github.com/apache/spark/blob/master/core/src/main/scala/org/apache/spark/rdd/PairRDDFunctions.scala隐式导入的方法。
隐式导入的方法包括、reduceByKey*、和reduceByKeyAndWindow*方法。我现在没有一个通用的解决方案,-except,是的,你可以安全地忽略智能感知错误
https://stackoverflow.com/questions/24084335
复制相似问题