我已经开始学习Apache Spark了。现在大部分教程都是用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 = lines.map(x => x.toString().split("\t")(2))
val results = ratings.countByValue()
val sortedResults = results.toSeq.sortBy(_._1)
sortedResults.foreach(println)
}我在java8中编写的等效代码是:
public static void main(String[] args){
JavaSparkContext sc = new JavaSparkContext("local[*]", "<class-name>");
JavaRDD<String> lines = sc.textFile("../a.data");
//....
}代码的其余部分,我不能转换。我在java8中找不到对应的map函数,只有一个平面map,但它创建了许多实例。
我尝试了其他几种方法,但都不起作用。
请帮我做一下这个程序。
文件中的数据格式为
191 241 4 654258949
186 312 1 991123772发布于 2017-04-15 11:59:26
不知何故,这确实起到了作用。不确定我的编码是否有效。
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)));https://stackoverflow.com/questions/43421344
复制相似问题