Как записать в одиночный файл из карты spark rdd и сократить операции - PullRequest
1 голос
/ 25 октября 2019

Я пытаюсь записать в текстовый файл после применения карты, сократить операции. Приведенный ниже код создает 8 файлов, но мне нужен только один файл

df3.rdd.map(_.toSeq.map(_+"").reduce(_+" "+_)).saveAsTextFile("/home/ram/Desktop/test4")

Пожалуйста, предложите, как записать содержимое в один файл

Ответы [ 2 ]

1 голос
/ 26 октября 2019

Лучший вариант - "объединить". Метод объединения сокращает число разделов в кадре данных.

- вот код вашего вопроса.

df3.coalesce(1).rdd.map(_.toSeq.map(_+"").reduce(_+" "+_)).saveAsTextFile("/home/ram/Desktop/test4")

Поскольку он даст хорошую производительность, избегая перемещения данных. пожалуйста, проверьте ссылку ниже.

Spark - передел () против coalesce ()

0 голосов
/ 25 октября 2019

Создает несколько файлов, потому что каждый раздел сохраняется отдельно. Если вам нужен один выходной файл внутри папки, вы можете переразбить или объединить, чтобы записать в один файл.

df3.repartition(1).rdd.map(_.toSeq.map(_+"").reduce(_+" "+_)).saveAsTextFile("/home/ram/Desktop/test4")
...