当我厌倦编译我的scala程序时,我遇到了问题。这是我的代码。
这是代码发出问题的部分。
val Average_Age =
value2
.groupBy(_._2._1)
.mapValues(Sum_Age=>mean1(Sum_Age.map(_._2._2)))
.toArray
答案 0 :(得分:2)
我不确定你对Spark和使用RDD(弹性分布式数据集)有多熟悉,但如果你不熟悉,some reading会非常有帮助。
问题在于RDD
不再支持直接调用toArray()
;你应该使用.collect()
代替。
答案 1 :(得分:2)
Spark主要有两种类型的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。:代码未经过测试!