这个问题是在Spark读取Lzo压缩文件的时候碰见的,Spark读取Lzo压缩文件的时候,就算文件添加了索引,也不能分片,原因是要在获取文件的时候使用newAPIHadoopFile算子读取文件获取rdd
val rdd = sc.newAPIHadoopFile(in, classOf[LzoTextInputFormat], classOf[LongWritable], |
而这里最重要的就是LzoTextInputFormat类,这个类是Twitter的,但是添加了Twitter仓库后,能进仓库,但是不能下载,最后向朋友要了jar包,关键在于只给了我hadoop-lzo-0.4.20.jar,我通过添加外部依赖的方式,加到了项目里,运行的时候就报了error: object hadoop is not a member of packee com的错误
其原因是只有jar包,没有pom文件,最后将jar包和pom文件一起放入maven仓库中,解决问题
终极解决办法是在github上下载源码,通过编译maven install到本地仓库