0

我正在使用 Hadoop 处理分布在 JVM 实例集群中的一些文件。

我正在使用 Cascading 库与 Hadoop 交互。

我想解析一个文本文件,其中记录跨越换行符并以句点终止:(。)

(我知道这太小了,没有意识到 Hadoop 的好处——我正在做一个演示)。

据我所知 - 我需要编写一个自定义InputFormat来处理这个问题。

我的问题是 - 这样做更好#:

(a) 对我的输入数据进行预处理以去除换行符,然后在每条记录的末尾插入换行符?

(b) 编写自定义 InputFormat?

# 通过“更好” - 我的意思是更少的工作和更多的惯用语。

4

1 回答 1

1

实际上,您可以根据自己的要求权衡每种方法的利弊。但我个人建议编写自定义 InputFormat 和 RecordReader 来读取您的输入数据,如果您必须编写预处理应用程序只是为了转换一种类型的文本文件(记录跨换行符并以句点终止)。如果您期望将来会出现更多非正统的文本文件格式,那么预处理器将是理想的,以便预处理器可以在发送到 Map/Reduce 之前将所有不同的格式转换为中间格式。

阅读本教程以了解如何编写自定义 InputFormat 和 RecordReader。

于 2013-01-04T04:03:18.797 回答