1. 程式人生 > >spark讀取lzo檔案並指定日誌記錄起始識別符號

spark讀取lzo檔案並指定日誌記錄起始識別符號

1、讀取檔案是LzoTextInputFormat.class

2、設定

JavaSparkContext jsc = new JavaSparkContext(conf);
Configuration hconf = jsc.hadoopConfiguration();
hconf.set("textinputformat.record.delimiter", "[*&^%]");
    
hconf.set("io.compression.codecs", "org.apache.hadoop.io.compress.DefaultCodec,com.hadoop.compression.lzo.LzopCodec");
hconf.set("io.compression.codec.lzo.class", "com.hadoop.compression.lzo.LzoCodec");

JavaPairRDD<LongWritable, Text> newAPIHadoopFile = jsc.newAPIHadoopFile(args[4], LzoTextInputFormat.class,LongWritable.class,Text.class, hconf);

由於LzoTextInputFormat預設是按行讀取,而我需要按照日誌記錄起始識別符號讀取行。

故修改原始碼:

com.hadoop.mapreduce.LzoTextInputFormat 


com.hadoop.mapreduce.LzoLineRecordReader


實現功能!