2017-07-01 406 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

該類必須在代碼中的某處使用。請找到那部分 –

相關問題