hadoop - Hadoop:不带分隔符的可变长度文件的 InputFormat
问题描述
我必须处理(通过 Hadoop)不带分隔符的可变长度文件。这些文件的格式是:
(LengthRecord1)(Record1)(LengthRecord2)(Record2)...(LengthRecordN)(RecordN)
记录之间没有分隔符(文件在一行中)。LenghtRecord 和 Record 本身之间没有分隔符(在本文中添加括号只是为了清楚起见)。
我想我既不能使用 TextInputFormat 也不能使用 KeyValueTextInputFormat 默认类,因为它们基于使用换行符或回车符来发出信号然后行尾。
所以,我想我必须自定义一个 InputFormat 来加载这些文件。但我不知道该怎么做。
我是否必须重写 createRecordReader() 才能读取记录 n 的长度并识别记录 n 的结尾?如果是这样,我该如何处理拆分可以有半行的事实?
提前致谢。
问候
解决方案
推荐阅读
- swift - 如何在 Swift 中创建嵌套的字典元素?
- r - 奇怪的警告信息:在 FUN(X[[i]], ...) 中:强制引入的 NA
- java - 组件调整大小的方法被连续调用?
- gradle - Gradle 未使用 ext:pom 导入依赖项
- python - 为什么 torch.nn 包不支持单个样本的输入
- java - 无法调用在 src/test/resource 中创建的方法
- css - 文本换行不起作用
- angular - 如何在 dxdatagrid 中动态创建带有 dataType 的 dxi-column?
- magento - 如何根据特定的商店产品而不是 magento 2 中的完整默认类别在 magento 网站上显示类别树
- batch-file - 如何将 findstr 结果解析为 cmd 变量以允许剥离找到的行