Scala程序到Java 8程序的转换
我已经开始学习ApacheSpark。现在,教程大部分是用scala编写的。我也想试试Java8中的程序 但我在Java8中找不到一些scala代码的等效编码 scala代码如下所示:Scala程序到Java 8程序的转换,java,scala,apache-spark,Java,Scala,Apache Spark,我已经开始学习ApacheSpark。现在,教程大部分是用scala编写的。我也想试试Java8中的程序 但我在Java8中找不到一些scala代码的等效编码 scala代码如下所示: def main(args: Array[String]) { val sc = new SparkContext("local[*]", "<class-name>") val lines = sc.textFile("../a.data") val stars = li
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)
}
不知怎的,这就成功了。不确定,我是否有效地编写了代码
sc.textFile("../a.data")
.map(text -> Arrays.asList(text.split("\t")[2]))
.mapToPair(word -> new Tuple2<>(word, 1))
.reduceByKey((a, b) -> a + b)
.foreach(result -> System.out.println(
String.format("Word [%s] count [%d].", result._1(), result._2)));
sc.textFile(“../a.data”)
.map(text->Arrays.asList(text.split(“\t”)[2]))
.mapToPair(word->new Tuple2(word,1))
.reduceByKey((a,b)->a+b)
.foreach(结果->System.out.println(
String.format(“单词[%s]计数[%d]”,result._1(),result._2));
Java API与scala非常相似。看看JavaRDD的文档,它有所有您需要的方法。是的,您是对的。但如果我能得到第一个项目的帮助,我就可以开始了。我也在研究在线示例,但运气不好。我认为您可以使用Java 8的map
编写类似于val stars=lines.map(x=>x.toString().split(“\t”)(2))
。
191 241 4 654258949
186 312 1 991123772
sc.textFile("../a.data")
.map(text -> Arrays.asList(text.split("\t")[2]))
.mapToPair(word -> new Tuple2<>(word, 1))
.reduceByKey((a, b) -> a + b)
.foreach(result -> System.out.println(
String.format("Word [%s] count [%d].", result._1(), result._2)));