IntelliJ中找不到reduceByKey方法

blu*_*sky 8 scala intellij-idea apache-spark

这是我正在为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(_ + _)

  }

}
Run Code Online (Sandbox Code Playgroud)

给编译器错误:"无法解析符号reduceByKey"

当我将鼠标悬停在reduceByKey的实现上时,它提供了三种可能的实现,因此看起来它正在被发现?:

在此输入图像描述

uri*_*ris 11

您需要将以下导入添加到您的文件中:

import org.apache.spark.SparkContext._

Spark文档:

" 在Scala中,这些操作都是在包含Tuple2对象RDDS自动获得(在语言中内置的元组,创建通过写(A,B)),只要你输入org.apache.spark.SparkContext._在你的程序可以启用Spark的隐式转换.BoneRDDFunctions类中提供了键值对操作,如果你导入转换,它会自动包装元组的RDD. "


jav*_*dba 2

我注意到有时 IJ 无法解析通过 PairRDDFunctions https://github.com/apache/spark/blob/master/core/src/main/scala/org/apache/spark/rdd/隐式导入的方法PairRDDFunctions.scala

隐式导入的方法包括reduceByKey*reduceByKeyAndWindow*方法。我目前没有通用的解决方案 - 除了你可以安全地忽略智能感知错误