gpt4 book ai didi

java - Spark 类型不匹配 : cannot convert from JavaRDD to JavaRDD
转载 作者:搜寻专家 更新时间:2023-11-01 01:50:00 24 4
gpt4 key购买 nike

我已经开始将我的 Pyspark 应用程序编写为 Java 实现。我正在使用 Java 8。我刚开始在 java 中执行一些基本的 spark progrma。我使用了以下 wordcount示例。

SparkConf conf = new SparkConf().setMaster("local").setAppName("Work Count App");

// Create a Java version of the Spark Context from the configuration
JavaSparkContext sc = new JavaSparkContext(conf);

JavaRDD<String> lines = sc.textFile(filename);

JavaPairRDD<String, Integer> counts = lines.flatMap(line -> Arrays.asList(line.split(" ")))
.mapToPair(word -> new Tuple2(word, 1))
.reduceByKey((x, y) -> (Integer) x + (Integer) y)
.sortByKey();

我得到 Type mismatch: cannot convert from JavaRDD<Object> to JavaRDD<String> lines.flatMap(line -> Arrays.asList(line.split(" "))) 中的错误当我用谷歌搜索时,在所有基于 Java 8 的 spark 示例中,我看到了上面相同的实现。我的环境或程序出了什么问题。

有人能帮帮我吗?

最佳答案

使用此代码。实际问题是 rdd.flatMap 函数需要 Iterator<String>当您的代码正在创建 List<String> .调用 iterator() 将解决问题。

JavaPairRDD<String, Integer> counts = lines.flatMap(line -> Arrays.asList(line.split(" ")).iterator())
.mapToPair(word -> new Tuple2<String, Integer>(word, 1))
.reduceByKey((x, y) -> x + y)
.sortByKey();

counts.foreach(data -> {
System.out.println(data._1()+"-"+data._2());
});

关于java - Spark 类型不匹配 : cannot convert from JavaRDD<Object> to JavaRDD<String>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40102291/

24 4 0