尝试编写一个自定义加载程序,用于处理跨越多行的记录,如何确保拆分不会发生在记录中间?

时间:2012-10-01 19:00:57

标签: java hadoop split apache-pig

我正在为猪写一个定制装载机。它应该读取可能跨越多行的分隔记录。一切都有效,除了有时在记录中间发生分裂并混淆一切。我知道RecordReader和InputFormat与文件被拆分的地方有关,但无法弄清楚如何让它在我的情况下工作。 对我来说,看起来CSVExcelStorage应该有同样的问题,但我找不到任何代码来处理这个问题。

1 个答案:

答案 0 :(得分:0)

CSVExcelStorage假设没有任何嵌入的新行字符,因此没有代码可以处理它们。

你认为RecordReader是罪魁祸首是正确的。您需要编写一个新的记录阅读器类,它能够理解您的数据,因此可以了解哪些新行字符是分割位置的候选字符,哪些新行字符只是数据的一部分。一旦编写了新的记录类,就需要一个新的InputFormatType来使用该记录阅读器类。