首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Scala程序到Java 8程序的转换

Scala程序到Java 8程序的转换
EN

Stack Overflow用户
提问于 2017-04-15 09:49:29
回答 1查看 73关注 0票数 0

我已经开始学习Apache Spark了。现在大部分教程都是用scala编写的。我也想试试java8中的程序。

但是我在java8中找不到与scala代码相同的代码。

scala代码如下:

代码语言:javascript
复制
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)
  }

我在java8中编写的等效代码是:

代码语言:javascript
复制
public static void main(String[] args){

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

        //....
}

代码的其余部分,我不能转换。我在java8中找不到对应的map函数,只有一个平面map,但它创建了许多实例。

我尝试了其他几种方法,但都不起作用。

请帮我做一下这个程序。

文件中的数据格式为

代码语言:javascript
复制
191 241 4   654258949
186 312 1   991123772
EN

回答 1

Stack Overflow用户

发布于 2017-04-15 11:59:26

不知何故,这确实起到了作用。不确定我的编码是否有效。

代码语言:javascript
复制
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)));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43421344

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档