2013-05-02 159 views
1

其實我的意圖是將hadoop作業的輸出重命名爲.csv文件,因爲我需要在rapidminer中將此csv數據可視化。如何將我的hadoop結果重命名爲擴展名爲「.csv」的文件

How can i output hadoop result in csv format據說,爲了這個目的,我需要遵循以下三個步驟:

1. Submit the MapReduce Job 
    2. Which will extract the output from HDFS using shell commands 
    3. Merge them together, rename as ".csv" and place in a directory where the visualization tool can access the final file 

如果是這樣,我怎麼能做到這一點?

UPDATE myjob.sh

bin/hadoop jar /var/root/ALA/ala_jar/clsperformance.jar ala.clsperf.ClsPerf /user/root/ala_xmlrpt/Amrita\ Vidyalayam\,\ Karwar_Class\ 1\ B_ENG.xml /user/root/ala_xmlrpt-outputshell4 

bin/hadoop fs -get /user/root/ala_xmlrpt-outputshell4/part-r-00000 /Users/jobsubmit 

cat /Users/jobsubmit/part-r-00000 /Users/jobsubmit/output.csv 

顯示:

The CSV file was empty and couldn’t be imported. 

當我試圖打開output.csv

解決方案

cat /Users/jobsubmit/part-r-00000> /Users/jobsubmit/output.csv 

回答

1

首先,你需要從HDFS檢索MapReduce的結果

hadoop dfs -copyToLocal path_to_result/part-r-* local_path 

然後貓成一個單一的文件

cat local_path/part-r-* > result.csv 

那就要看你的MapReduce結果格式,如果它已經是csv格式,那麼就完成了。如果沒有,可能你必須使用其他工具如sed或awk將其轉換爲csv格式。

+0

一切都很好,但是當我在localfs中查看我的.csv文件時,該文件是空的。我也分享我的shell腳本,但沒有顯示錯誤。本地部分-r-00000包含文本。 – 2013-05-02 10:59:43

+0

你需要添加「>」,這是輸出重定向,就像上面的cat命令在我的回答 – darkjh 2013-05-02 11:25:27

+0

是的。我錯過了。謝謝 – 2013-05-03 03:43:54