2015-04-24 44 views
2

我知道我的問題類似於Merge Output files after reduce phase,但我認爲它可能會不同,因爲我僅使用Spark而不是實際上是分佈式文件系統。將Spark的輸出合併到一個文件中

我在單個VM上安裝了Spark(用於測試)。輸出在Home/Spark_Hadoop/spark-1.1.1-bin-cdh4 /中的一個名爲'STjoin'的文件夾中有幾個文件(part-000000,part-000001等)給出。

命令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'是HDFS專用文件的Hadoop版本。 – frb

回答

3

只需做cat /path/to/source/dir/* > /path/to/output/file.txtgetmerge是僅適用於HDFS文件的Hadoop版本。

+0

什麼關於標題..如果所有文件都有標題頭也將它合併? – SUDARSHAN

+0

是的......這就是Spark作業的輸出是CSV部分文件的情況。在這種情況下,你必須更具創意...例如,通過刪除文件的第一行,然後合併,在結果文件的開頭添加一個單一的標題行。 – frb

相關問題