我的文件内容将是这样的。
TestKey, TestValue
TestKey1, TestValue1
我想将 Mapper Key 作为 TestKey 和 Mapper Value 作为 TestValue 传递等等。
所以我尝试编写自定义 RecordReader 来实现这一点。
但它的抛出错误,如不能用文本种姓 LongWritable。
如何将文本作为映射器输入键传递?
对此高度赞赏的任何帮助。
谢谢,尚卡尔
看起来您需要将输入格式更改为KeyValueTextInputFormat
并将分隔符设置mapreduce.input.keyvaluelinerecordreader.key.value.separator
为", "
。1
默认输入格式是TextInputFormat
在文件中使用字节偏移量,格式为 aLongWritable
作为键,行作为值。这就是您当前看到错误的原因。
1:假设您使用的是新 API;旧 API 也有类似的东西。