引起:java.lang.ClassNotFoundException:net.jpountz.lz4.LZ4BlockOutputStream
使用Scala Eclipse IDE启动我的示例Scala Spark程序。该程序是一个简单的词计数,我已经创建了一个简单的文本文件没有压缩。当运行代码的Scala应用得到了错误引起:java.lang.ClassNotFoundException:net.jpountz.lz4.LZ4BlockOutputStream
“所造成:抛出java.lang.ClassNotFoundException:net.jpountz.lz4.LZ4BlockOutputStream” 在执行sc.textFile( “WORD.TXT”)
我的代码
import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
import net.jpountz.lz4.LZ4BlockOutputStream
object WordCount {
def main (args: Array[String]) = {
val conf = new SparkConf().setAppName("WordCount").setMaster("local")
val sc = new SparkContext(conf)
val test = sc.textFile("word.txt")
//test.flatMap{line => line.split(" ")}.saveAsTextFile("wordCount.txt")
//.map{word => (word,1)}.reduceByKey(_ + _).saveAsTextFile("wordCount.txt")
}
}
在我的本地Windows机器上运行。这是我的POM.xml的问题吗?
正如@eliasah在他上面的评论中说的,从代码中删除LZ4BlockOutputStream
import
。只要删除以下行,你应该没问题。
import net.jpountz.lz4.LZ4BlockOutputStream
这是一个不必要的代码创建classNotFoundException
。但是,如果您打算在将来使用它,您可以添加在POM文件下列dependency
<!-- https://mvnrepository.com/artifact/net.jpountz.lz4/lz4 -->
<dependency>
<groupId>net.jpountz.lz4</groupId>
<artifactId>lz4</artifactId>
<version>1.3.0</version>
这时你不需要删除import
。
添加“import net.jpountz.lz4.LZ4BlockOutputStream”后,我得到以下错误 - “由...引起:java.lang .ClassNotFoundException:net.jpountz.lz4.LZ4BlockOutputStream“。不知道为什么LZ4在打开txt文件时被调用,文件是在eclipse中作为项目下的新文件创建的。 –
该类必须在代码中的某处使用。请找到那部分 –
我没有看到该代码包中的共享需求... – eliasah