2017-07-01 897 views
0

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

+0

我没有看到该代码包中的共享需求... – eliasah

回答

0

正如@eliasah在他上面的评论中说的,从代码中删除LZ4BlockOutputStreamimport。只要删除以下行,你应该没问题。

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

+0

添加“import net.jpountz.lz4.LZ4BlockOutputStream”后,我得到以下错误 - “由...引起:java.lang .ClassNotFoundException:net.jpountz.lz4.LZ4BlockOutputStream“。不知道为什么LZ4在打开txt文件时被调用,文件是在eclipse中作为项目下的新文件创建的。 –

+0

该类必须在代码中的某处使用。请找到那部分 –

相关问题