Spark saveAsTextFile не работает должным образом, см. Код ниже - PullRequest
0 голосов
/ 23 февраля 2019
val reduced_rdd = mofm.reduceByKey(_ + _)
                      .map(item => item.swap)
                      .sortByKey(false)
                      .take(5)
                      .saveAsTextFile("/home/scrapbook/tutorial/IPLData/")

выдает ошибку:

<console>:40: error: value saveAsTextFile is not a member of Array[(Int, String)]
   val reduced_rdd = mofm.reduceByKey(_ + _).map(item => item.swap).sortByKey(false).take(5).saveAsTextFile("/home/scrapbook/tutorial/IPLData/")

Ответы [ 2 ]

0 голосов
/ 24 февраля 2019
take(5) is an action on RDD which returns a Array (list).

Это означает, что нет метода saveAsTextFile для вызова, так как массивы не имеют таких методов.

Это тоже ошибка, о которой говорилось -

saveAsTextFile не является членом массива

Любое действие в СДР возвращает фактический набор данных (в зависимости от того, какое действие

Вы можете прочитать о различных функциях действий в Spark здесь - Действия в Spark RDD

Теперь, если вы хотите сохранить данные в RDD в текстовый файл,вам нужно вызвать saveAsTextFile ("path_to_file") через rdd.

0 голосов
/ 24 февраля 2019
.take(5) or .collect 

вызывает сброс типа RDD.

saveAsTextFile требуется RDD;у вас больше нет этого после получения (5) или сбора.

Вам необходимо:

val x = ...
...
take(5)

sc.parallelize(x).saveAsTextFile("path")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...