使用Scala Eclipse IDE开始我的示例Scala Spark程序。该程序是一个简单的单词Count我在没有压缩的情况下创建了一个简单的文本文件。在Scala应用程序中运行代码时出现错误
执行sc.textFile(“word.txt”)时出现“引起:java.lang.ClassNotFoundException:net.jpountz.lz4.LZ4BlockOutputStream”我的代码
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的问题吗?
答案 0 :(得分:3)
从spark上下文中读取CSV文件时遇到了类似的问题。追踪有点棘手,但我能够通过查看依赖树来解决。事实证明,在spark的内部深处,它调用LZ4BlockInputStream上的构造函数,该构造函数存在于更新的lz4库org.lz4-java-1.4中。问题是由于不同的过时依赖性,它引入了旧版本lz4,net.jpountz.lz4(1.3)。