当我厌倦编译我的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()
。