0
코드 실행을 위해 Scala 2.11.8 및 Spark 2.0.1을 사용합니다. 이 코드 줄에서 :Scala 및 Spark 실행 중 오류
import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
object training {
def main(args: Array[String]): Unit = {
val conf = new SparkConf().setAppName("test").setMaster("local[4]")
val sc = new SparkContext(conf)
val data = sc.textFile("/home/ahoora/data.csv")
// create RDDs from data in form (user, product, price)
data.map(line => line.split(",")).map(purchaserecord => (purchaserecord(0), purchaserecord(1), purchaserecord(2)))
// Our total revenue
val totalRevenue = data.map{ case (user, product, price) => price.toDouble}.sum()
sc.stop()
}
}
이 코드는 스칼라 2.10.x를 기반으로 스파크 1.X, 나는 오류 때문에 버전의 생각합니다. (사용자, 제품, 가격)을 RDD로 분리 한 .csv 파일에서 데이터를 읽었습니다. 모든 것은 정확했지만 여기에서는 toDouble
메서드가 해결되지 않았습니다. 그렇게하는 올바른 방법은 무엇입니까?
데이터는 원본 (RDD[String]
을 입력했다) data
아니라 수정 RDD를 사용하고
문제를 재현하는 당신이 오류 충분한 코드를 추가하십시오 : 당신이 변환의 결과를 사용하려는 경우 RDDs는 (같은
map
)이 그 변화에서 반환 된 값을 사용해야 불변 있습니다 . – maasg코드를 다시 컴파일 했습니까? scala 2.10.x에서 컴파일 된 코드를 사용하면 문제가 발생할 수 있습니다. 또한 가격 유형은 무엇입니까? 어딘가에서 읽으면 지원되지 않는 유형으로 변환되었을 수 있습니다. 예를 들어 price가 double이 아닌 string 인 경우 문제가 발생할 수 있습니다. 또한 string이 null 인 경우 비슷한 문제가 발생할 수 있습니다. 정확한 오류 메시지는 무엇입니까? –