引起:java.lang.ClassNotFoundException:net.jpountz.lz4.LZ4BlockOutputStream

时间:2017-07-01 22:38:38

标签: scala apache-spark

使用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的问题吗?

1 个答案:

答案 0 :(得分:3)

从spark上下文中读取CSV文件时遇到了类似的问题。追踪有点棘手,但我能够通过查看依赖树来解决。事实证明,在spark的内部深处,它调用LZ4BlockInputStream上的构造函数,该构造函数存在于更新的lz4库org.lz4-java-1.4中。问题是由于不同的过时依赖性,它引入了旧版本lz4,net.jpountz.lz4(1.3)。