2015-04-24 3 views
2

Я понимаю, что мой вопрос похож на Merge Output files after reduce phase, но я думаю, что это может быть иначе, потому что я использую Spark только локальную машину, а не распределенную файловую систему.слияние вывода Spark в один файл

У меня есть Spark, установленный на одной виртуальной машине (для тестирования). Вывод представлен в нескольких файлах (part-000000, part-000001 и т. Д.) В папке «STjoin» в Home/Spark_Hadoop/spark-1.1.1-bin-cdh4 /.

Команда hadoop fs -getmerge /Spark_Hadoop/spark-1.1.1-bin-cdh4/STjoin /desired/local/output/file.txt не кажется, не работает («Нет такого файла или директор»)

Это потому, что эта команда применяется только к файлам, хранящимся в HDFS, а не локально, или я не понимая Linux адреса в целом ? (Я новичок в Linux и HDFS)

+0

Является ли исходный каталог локальным или HDFS одним? – frb

+0

Это локально, а не HDFS –

+0

В этом случае просто выполните 'cat/path/to/source/dir/*>/path/to/output/file.txt'. 'getmerge' - это версия Hadoop для файлов HDFS. – frb

ответ

3

Просто сделайте cat /path/to/source/dir/* > /path/to/output/file.txt. getmerge - версия Hadoop для файлов HDFS.

+0

как насчет заголовка. Если все файлы имеют заголовок, он тоже будет сливаться с заголовком? – SUDARSHAN

+0

Да ... в этом случае результатом работы Spark являются файлы частей CSV. В этом случае вам придется быть более креативными ... Например, удалив первую строку файлов перед их загрузкой и, после объединения, добавив одну строку заголовка в начале результирующего файла. – frb

Смежные вопросы