當我厭倦編譯我的scala程序時,我遇到了一個問題。這是我的代碼。value toArray不是org.apache.spark.rdd.RDD的成員[(String,Int)]
這是發出問題的代碼的一部分。
val Average_Age =
value2
.groupBy(_._2._1)
.mapValues(Sum_Age=>mean1(Sum_Age.map(_._2._2)))
.toArray
當我厭倦編譯我的scala程序時,我遇到了一個問題。這是我的代碼。value toArray不是org.apache.spark.rdd.RDD的成員[(String,Int)]
這是發出問題的代碼的一部分。
val Average_Age =
value2
.groupBy(_._2._1)
.mapValues(Sum_Age=>mean1(Sum_Age.map(_._2._2)))
.toArray
火花對RDD主要有兩種類型的操作:
變換:取輸入作爲RDD和輸出作爲RDD
操作:取輸入RDD並返回一個Scala的集合。
你在做什麼錯在這裏是你正試圖將RDD
轉換成Array
直接。這是不能做到的,因此你需要首先應用Action來得到scala Collection的輸出結果。
因此,你可以通過添加一個動作,使這項工作:
val Average_Age =
value2
.groupBy(_._2._1)
.mapValues(Sum_Age=>mean1(Sum_Age.map(_._2._2))).collect
.toArray
P.S:該代碼是沒有測試!
我不知道你是多麼熟悉的Spark與RDDS(彈性分佈式數據集)的工作,但如果你沒有,some reading將是很有益。
您的情況問題是RDD
不再支持直接調用toArray()
;您應該改用.collect()
。