当我厌倦了用SBT编译我的scala程序时,我遇到了问题。 我已经导入了我需要的类。这是我的代码的一部分。
import java.io.File
import java.io.FileWriter
import java.io.PrintWriter
import java.io.IOException
import org.apache.spark.{SparkConf,SparkContext}
import org.apache.spark.rdd.PairRDDFunctions
import scala.util.Random
......
val data=sc.textFile(path)
val kv=data.map{s=>
val a=s.split(",")
(a(0),a(1))
}.cache()
kv.first()
val start=System.currentTimeMillis()
for(tg<-target){
kv.lookup(tg.toString)
}
错误详情为:
value lookup is not a member of org.apache.spark.rdd.RDD[(String, String)]
[error] kv.lookup(tg.toString)
令我困惑的是我有导入导入org.apache.spark.rdd.PairRDDFunctions, 但它不起作用。当我在Spark-shell中运行它时,它运行良好。
答案 0 :(得分:1)
import org.apache.spark.SparkContext._
可以访问允许您在类型(K,V)的RDD上使用PairRDDFunction的implicits。
无需直接导入PairRDDFunctions