一:背景
有时候,我们可以不以偏移量和行文本内容来作为数据源到MapTask的输入格式,而使用键值对的形式,使用KeyValueInputFormat就可以完成这种需求。
二:技术实现
数据源如下
操作代码如下:
public class MyKeyValueTextInputFormat {
// 定义输入路径
private static final String INPUT_PATH = "hdfs://liaozhongmin:9000/hello";
// 定义输出路径
private static final String OUT_PATH = "hdfs://liaozhongmin:9000/out";
public static void main(String[] args) {
try {
// 创建配置信息
Configuration conf = new Configuration();
//设置行的分隔符,这里是制表符,第一个制表符前面的是Key,第一个制表符后面的内容都是value
conf.set(KeyValueLineRecordReader.KEY_VALUE_SEPERATOR