spark讀取lzo檔案並指定日誌記錄起始識別符號
阿新 • • 發佈:2019-02-11
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
實現功能!