2017-04-15 75 views
0

我已經開始學習Apache Spark了。現在這些教程主要是用scala編寫的。我也想嘗試java 8中的程序。Scala程序到Java 8程序轉換

但我找不到在java 8中爲少數scala代碼編寫的等效代碼。

階代碼如下:

def main(args: Array[String]) { 

    val sc = new SparkContext("local[*]", "<class-name>") 

    val lines = sc.textFile("../a.data") 
    val stars = lines.map(x => x.toString().split("\t")(2)) 
    val results = ratings.countByValue() 
    val sortedResults = results.toSeq.sortBy(_._1) 
    sortedResults.foreach(println) 
    } 

在Java 8我寫的等效代碼是:

public static void main(String[] args){ 

     JavaSparkContext sc = new JavaSparkContext("local[*]", "<class-name>"); 
     JavaRDD<String> lines = sc.textFile("../a.data"); 

     //.... 
} 

代碼的剩餘部分,我不是能夠轉換。我無法在java 8中找到等價的map函數。有一個flatmap,但它創建了許多實例。

我嘗試了其他幾種方法,但沒有工作。

請幫我看看這個程序。

文件中的數據格式

191 241 4 654258949 
186 312 1 991123772 
+0

Java API與scala非常相似。查看JavaRDD的Docs,它具有您需要的所有相同方法。 – puhlen

+0

是的你是對的。但是如果我可以得到第一個程序的幫助,那我就可以開始了。我也在研究網上的例子,但沒有運氣。 – azaveri7

+0

我認爲你可以使用Java 8的'map'寫一些類似'val stars = lines.map(x => x.toString()。split(「\ t」)(2))的東西。 – jrook

回答

0

不知該做的伎倆。不確定,如果我有效地編碼或沒有。

​​3210