Spark 2.0.0 Arrays.asList无法正常工作 - 不兼容的类型 [英] Spark 2.0.0 Arrays.asList not working - incompatible types

查看:177
本文介绍了Spark 2.0.0 Arrays.asList无法正常工作 - 不兼容的类型的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

以下代码适用于Spark 1.5.2但不适用于Spark 2.0.0。我使用的是Java 1.8。

Following code works with Spark 1.5.2 but not with Spark 2.0.0. I am using Java 1.8.

final SparkConf sparkConf = new SparkConf();
sparkConf.setMaster("local[4]"); // Four threads
final JavaSparkContext javaSparkContext = new JavaSparkContext(sparkConf);
final JavaRDD<String> javaRDDLines = javaSparkContext.textFile("4300.txt");
final JavaRDD<String> javaRDDWords = javaRDDLines.flatMap(line -> Arrays.asList(line.split(" ")));

我收到以下错误

Error:(46, 66) java: incompatible types: no instance(s) of type variable(s) T exist so that java.util.List<T> conforms to java.util.Iterator<U>

我无法确定Spark API是否已更改或其他内容。请帮忙。谢谢。

I am unable to figure out if the Spark API has changed or something else. Please help. Thanks.

推荐答案

在2.0中, FlatMapFunction.call() 返回 Iterator 而不是 Iterable 。试试这个:

In 2.0, FlatMapFunction.call() returns an Iterator rather than Iterable. Try this:

JavaRDD<String> javaRDDWords = javaRDDLines.flatMap(line -> Arrays.asList(line.split(" ")).iterator())

这篇关于Spark 2.0.0 Arrays.asList无法正常工作 - 不兼容的类型的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆