在hadoop应用程序中读取和写入CSV文件

时间:2012-06-04 11:47:45

标签: csv hadoop file-io mapreduce

我需要处理自定义csv文件作为输入并将csv文件写回HDFS。我可以直接在地图reduce类中实现这一点吗?

为了处理我的csv文件,我使用的是opencsv库。我看过一些教程,他们使用inputformat和outputformat标志来指定处理用户定义格式的java类。有人可以就如何使用csv文件提出建议吗?

我想坚持使用hadoop提供的功能,否则我自己实现的输入和输出格式可能会使我的处理速度变慢。

1 个答案:

答案 0 :(得分:4)

问题是你是否需要多行csv。
如果您不需要它 - 您可以使用vanilla TextInputFormat和TextOutputFormat,并在mapper中使用opencsv来解析行。对于输出TextOutputFormat也很好 如果你需要多行 - 你需要做一些黑客来组装逻辑记录。您可以为它创建自己的输入格式,也可以在mapper中创建。