我正在使用hadoop来处理分布在jvm示例集群中的一些文件。我正在使用级联库来连接hadoop。我想解析一个文本文件,其中记录跨换行并以句点(.)终止(我知道这太小了,hadoop的好处还没有实现——我正在做一个演示)。据我所知,我需要编写一个自定义的inputformat来处理这个问题。我的问题是-最好是:(a) 对输入数据进行预处理,去掉换行符,然后在每条记录结束后插入换行符?(b) 编写自定义输入格式?
kokeuurv1#
实际上是由您根据自己的需求权衡每种方法的利弊。但就我个人而言,我建议您编写一个定制的inputformat和recordreader来读取您的输入数据,前提是您必须编写预处理应用程序来转换单一类型的文本文件(记录跨换行并以句点结束)。如果您希望将来出现更多非正统的文本文件格式,那么预处理器将是理想的,这样预处理器就可以在发送到map/reduce之前将所有不同的格式转换为中间格式。阅读本教程了解如何编写自定义inputformat和recordreader。
1条答案
按热度按时间kokeuurv1#
实际上是由您根据自己的需求权衡每种方法的利弊。但就我个人而言,我建议您编写一个定制的inputformat和recordreader来读取您的输入数据,前提是您必须编写预处理应用程序来转换单一类型的文本文件(记录跨换行并以句点结束)。如果您希望将来出现更多非正统的文本文件格式,那么预处理器将是理想的,这样预处理器就可以在发送到map/reduce之前将所有不同的格式转换为中间格式。
阅读本教程了解如何编写自定义inputformat和recordreader。