2016-10-22 2 views

ответ

1

Искра имеет в основном два типа операций по РДУ:

  1. Трансформация: принимает входные данные как РД и выходы, как РД

  2. действий: Принимает входную RDD и возвращает Scala Collection ,

Что вы делаете неправильно здесь вы пытаетесь преобразовать RDD в Array непосредственно. Это невозможно сделать, поэтому вам нужно применить действие сначала, чтобы получить результат в виде коллекции scala.

Таким образом, вы можете сделать эту работу, добавив действие:

val Average_Age = 
value2 
    .groupBy(_._2._1) 
    .mapValues(Sum_Age=>mean1(Sum_Age.map(_._2._2))).collect 
    .toArray 

P.S .: код не проверяется!

2

Я не уверен, насколько вы знакомы с искрой и работать с РДОМ (Плотная Распределенная Dataset), но в случае, если это не так, some reading было бы действительно полезно.

Проблема в вашем случае заключается в том, что RDD больше не поддерживает прямой вызов toArray(); вы должны использовать .collect().