error: object hadoop is not a member of packee com

这个问题是在Spark读取Lzo压缩文件的时候碰见的,Spark读取Lzo压缩文件的时候,就算文件添加了索引,也不能分片,原因是要在获取文件的时候使用newAPIHadoopFile算子读取文件获取rdd

val rdd = sc.newAPIHadoopFile(in, classOf[LzoTextInputFormat], classOf[LongWritable],
classOf[Text]).map(x => x._2.toString)

而这里最重要的就是LzoTextInputFormat类,这个类是Twitter的,但是添加了Twitter仓库后,能进仓库,但是不能下载,最后向朋友要了jar包,关键在于只给了我hadoop-lzo-0.4.20.jar,我通过添加外部依赖的方式,加到了项目里,运行的时候就报了error: object hadoop is not a member of packee com的错误

hadoop-lzo

其原因是只有jar包,没有pom文件,最后将jar包和pom文件一起放入maven仓库中,解决问题


终极解决办法是在github上下载源码,通过编译maven install到本地仓库

Author: Tunan
Link: http://yerias.github.io/2020/04/27/error/7/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.