2013-05-02 152 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