поиск значения не является членом org.apache.spark.rdd.RDD[(String, String)]

У меня возникла проблема, когда я устал компилировать свою программу scala с помощью SBT. У меня есть импорт класса, который мне нужен. Вот часть моего кода.

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)

Что меня смутило, так это то, что у меня есть import import org.apache.spark.rdd.PairRDDFunctions, но это не работает. И когда я запускаю это в Spark-shell, все работает хорошо.


person zhang    schedule 20.05.2015    source источник


Ответы (1)


import org.apache.spark.SparkContext._, чтобы иметь доступ к имплицитам, позволяющим использовать PairRDDFunctions в RDD типа (K, V). Нет необходимости напрямую импортировать PairRDDFunctions

person maasg    schedule 20.05.2015
comment
Спасибо за помощь. Но я столкнулся с новой проблемой, подобной этой: [ошибка] в пакете org.apache.hadoop, который недоступен. [ошибка] Он может полностью отсутствовать в текущем пути к классам, или версия [ошибка] пути к классам может быть несовместима с версией, используемой при компиляции SparkContext.class. [ошибка] for(i‹- 0 to totalnum-1){ - person zhang; 20.05.2015
comment
Это другой вопрос. Пожалуйста, создайте для него новый вопрос. Но это похоже на конфликт классов или версий, так что внимательно их проверяйте. - person The Archetypal Paul; 20.05.2015