我必须处理(通过Hadoop)不带分隔符的变长文件。 这些文件的格式为:
(LengthRecord1)(Record1)(LengthRecord2)(Record2)...(LengthRecordN)(RecordN)
记录之间没有定界符(文件在一行中)。 在LenghtRecord和Record本身之间没有定界符(括号中的括号仅是为了清楚起见)。
我认为我不能同时使用TextInputFormat和KeyValueTextInputFormat默认类,因为它们基于使用换行或回车来表示行尾的信息。
所以,我认为我必须自定义InputFormat来加载这些文件。但是我不知道该怎么做。
我是否必须重写createRecordReader()才能读取记录n的长度,并标识记录n的结尾?如果是这样,我如何处理拆分可能有一半行的事实?
谢谢。
致谢