2016-03-10 7 views
-1

У меня есть следующий тип данных:Запись РДД в текстовом файле

`org.apache.spark.rdd.RDD[org.apache.spark.rdd.RDD[((String, String),Int)]] = MapPartitionsRDD[29] at map at <console>:38` 

я хотел бы написать эти данные в текстовый файл, чтобы иметь что-то вроде

((like,chicken),2) ((like,dog),3) etc. 

хранить данные в переменной с именем res

Но на данный момент я пытался с этим:

res.coalesce(1).saveAsTextFile("newfile.txt") 

Но это не похоже на работу ...

+0

Перейдите в рабочий каталог и запустите 'ls' –

+1

Просьба указать более подробную информацию - что означает« не работает »? Вы видите исключения? (если это так - вставьте их). Что/где вы проверили? –

+0

Не жаль, на самом деле моя проблема в том, что у меня нет txt-файла, с этой командой у меня есть только «part-0000» и «part-0000.crc» как пустой файл. И я хочу, это txt-файл с тем, что у меня есть в моей переменной RDD – bouritosse

ответ

1

Если мое предположение верно, то вы чувствуете, что вывод должен быть один файл с расширением .txt, если он был coalesce d до одного работника. Это не так, как строится Spark. Он предназначен для распределенной работы и не должен быть взят под обувь в форме, где выход не распределяется. Для этого вам следует использовать более общий инструмент командной строки.

Все, что сказано, вы должны увидеть папку с именем newfile.txt, которая содержит файлы данных с ожидаемым результатом.