【问题标题】:How can i output hadoop result in csv format如何以 csv 格式输出 hadoop 结果
【发布时间】:2013-05-03 11:46:01
【问题描述】:

我需要以 .csv 格式输出我的 hadoop 结果。 我将如何做到这一点? 我的代码:https://github.com/studhadoop/xml/blob/master/XmlParser11.java

我是否应该在我的代码中简单地包含 csvoutputFormat。 我正在使用 mapreduce API

我的工作.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

解决方案

是我失踪了>在猫

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

【问题讨论】:

    标签: java csv hadoop mapreduce


    【解决方案1】:

    您可以使用 TextOutputFormat。默认的键/值分隔符是制表符。您可以通过在驱动程序中设置属性“mapred.textoutputformat.separatorText”来更改分隔符。

    conf.set("mapred.textoutputformat.separatorText", ",");
    

    【讨论】:

    • 是的。你应该使用“TextOutputFormat”。
    • 注意属性名称应该是“mapred.textoutputformat.separator”而不是“mapred.textoutputformat.separatorText”
    • 是的。 mapreduce 很好。我刚刚意识到我在第一个回复中提到了错误的属性名称。它应该是“mapred.textoutputformat.separator”
    • 我认为不可能从 MapReduce 作业创建扩展名为“.csv”的文件。您需要有一个工作流脚本,它将 1.) 提交 MapReduce 作业 2.) 它将使用 shell 命令从 HDFS 提取输出 3.) 将它们合并在一起,重命名为“.csv”并放置在可视化所在的目录中工具可以访问最终文件。
    • 第三个命令中缺少重定向cat /Users/jobsubmit/part-r-00000 > /Users/jobsubmit/output.csv 注意">" 在命令中,它将std输出放到文件中。也使用“part-r-*”,这样如果有多个文件,所有文件都会被考虑在内。
    猜你喜欢
    • 2010-09-26
    • 1970-01-01
    • 2015-12-27
    • 2014-12-13
    • 1970-01-01
    相关资源
    最近更新 更多