2016-10-22 87 views

回答

1

火花对RDD主要有两种类型的操作:

  1. 变换:取输入作为RDD和输出作为RDD

  2. 操作:取输入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:该代码是没有测试!

2

我不知道你是多么熟悉的Spark与RDDS(弹性分布式数据集)的工作,但如果你没有,some reading将是很有益。

您的情况问题是RDD不再支持直接调用toArray();您应该改用.collect()

相关问题