在hadoop应用程序中读取和写入CSV文件
问题描述:
我需要处理自定义csv文件作为输入并将csv文件写回HDFS。我可以直接在真正发生地图缩小类的地方做这个吗?在hadoop应用程序中读取和写入CSV文件
为了处理我的csv文件,我使用了opencsv库。我看过一些教程,他们使用inputformat和outputformat标志来指定处理用户定义格式的java类。有人可以提供关于如何使用CSV文件的建议吗?
我想坚持hadoop所提供的,否则我自己实现的输入和输出格式可能会使我的处理变慢。
答
问题是如果你需要多行csv或没有。
如果您不需要它 - 您可以使用vanilla TextInputFormat和TextOutputFormat,并在映射器中使用opencsv来分析行。对于输出TextOutputFormat也很好
如果你需要多行 - 你必须做一些黑客来组装逻辑记录。您可以为它创建自己的输入格式,或者在映射器中执行。
你能链接到你正在引用的教程吗? –
http://blog.aggregateknowledge.com/2011/08/30/custom-inputoutput-formats-in-hadoop-streaming/,我必须说,我无法找到我提到的确切的一个,清除了我的缓存浏览器,再次找不到确切的博客。但类似于这个 – Bob