2017-04-15 73 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