Я хочу разбить один файл на несколько в HDFS - PullRequest
0 голосов
/ 23 октября 2019

Я пытаюсь записать файл в hdfs, используя spark-submit. При записи файла я хочу разделить один файл на несколько, как результат mapreduce, а не одного (например, part-0000, park-0001)

вот пример кода Какие параметры я должен установить

val conf = new Configuration()
val fs= FileSystem.get(conf)
val output = fs.create(new Path("/user/foo/test.txt"))
val writer = new PrintWriter(output)
writer.write("Hellow World1\n")
writer.write("Hellow World2\n")
...
writer.write("Hellow World3\n")

1 Ответ

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

Вы можете контролировать количество выходных файлов в spark, используя repartition и coalesce. В mapreduce вы управляете выходными файлами по количеству редукторов, аналогично в spark вы можете указать разделы, и coalesce

dataRDD.repartition(2).saveAsTextFile("/user/cloudera/sqoop_import/orders_test")

, как показано в приведенной выше команде, сохранит данные в двух файлах, поскольку мы указали спецификацию раздела как 2

Вы можете взглянуть на этот ответ , это поможет вам понять

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...