Spark 2.0.0 Arrays.asList无法正常工作 - 不兼容的类型

Vin*_*nay 7 java apache-spark

以下代码适用于Spark 1.5.2,但不适用于Spark 2.0.0.我使用的是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(" ")));
Run Code Online (Sandbox Code Playgroud)

我得到以下错误

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>
Run Code Online (Sandbox Code Playgroud)

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

shm*_*sel 16

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

JavaRDD<String> javaRDDWords = javaRDDLines.flatMap(line -> Arrays.asList(line.split(" ")).iterator())
Run Code Online (Sandbox Code Playgroud)