我需要处理自定义csv文件作为输入并将csv文件写回HDFS。我可以直接在地图reduce类中实现这一点吗?
为了处理我的csv文件,我使用的是opencsv库。我看过一些教程,他们使用inputformat和outputformat标志来指定处理用户定义格式的java类。有人可以就如何使用csv文件提出建议吗?
我想坚持使用hadoop提供的功能,否则我自己实现的输入和输出格式可能会使我的处理速度变慢。
答案 0 :(得分:4)
问题是你是否需要多行csv。
如果您不需要它 - 您可以使用vanilla TextInputFormat和TextOutputFormat,并在mapper中使用opencsv来解析行。对于输出TextOutputFormat也很好
如果你需要多行 - 你需要做一些黑客来组装逻辑记录。您可以为它创建自己的输入格式,也可以在mapper中创建。