spark下读写lzo文件(java)
spark 下读写lzo ⽂件(java )
1、编译安装hadoop-lzo
这个⽹上已经说的很详细了,具体可以参考这个链接:
2、具体如何配置lzo,上⾯的⽂档已经有了,但是为了讨论问题,这⾥再复制⼀下:
a 、修改hadoop 配置⽂件l
b、 修改hadoop 配置⽂件l 看到了吧,这两个地⽅最终压缩的编码格式都是com.hadooppression.lzo.LzoCodec
3、然后往hadoop 写⼊相关⽂件,我⽤的是lzop 格式,同时⽣成索引⽂件(java 实现)
4、然后在spark 中读取
SparkConf conf = new SparkConf().setAppName("test");
JavaSparkContext sc = new JavaSparkContext(conf);
Configuration configuration = new Configuration();
胡子长得快
configuration.set("mapred.outputpress", "true");
configuration.set("dec", "com.hadooppression.lzo.LzopCodec");
String fileName = "hdfs://ip:port//data/.../.../*/info_credit_card.lzo";
JavaPairRDD<LongWritable, Text> pairRDD =
LzoTextInputFormat.class,
LongWritable.class,
蜂花36年无处罚记录Text.class,
九月你好的图片
configuration);pairRDD通过flatMap转为⾏,将会得到正确的值,并且已经做过分⽚;
疑惑:1、在配置⽂件l 和l 都是lzoCodec ,但是在读写的时候却必须⽤lzopCodec , 我试图直接⽤lzoCodec ,却总是失败,⽽⽹上的例⼦都是lzopCodec ?
Xml 代码
1.
<property>  2.
大接访<name&decs </name>  3.
<value>org.apache.hadoop.iopress.GzipCodec,org.apache.hadoop.iopress.DefaultCodec,com.hadoop pression.lzo.LzoCodec,org.apache.hadoop.iopress.BZip2Codec </value>  4.
</property>  5.
<property>  6.
<name&dec.lzo.class </name>  7.
<value>com.hadooppression.lzo.LzoCodec </value>  8.  </property>
Xml 代码
1.
党委换届工作报告
<property>  2.
<name>mapredpress.map.output </name>  3.
<value>true </value>  4.
</property>  5.
<property>  6.
<name>mapred.dec </name>  7.
dnf老是网络中断
<value>com.hadooppression.lzo.LzoCodec </value>  8.  </property>
2、当然,⽤lzo的Stream⽅式直接读写hdfs⽂件是没有问题的,但这样就⽆法使⽤JavaSparkContext的newAPIHadoopFile⽅法了,该⽅法可以直接按照规则匹配⽂件,⽣成分布式的rdd

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。