java - 在 Spark Java 应用程序中使用 Tuple2 时出现编译错误

标签 java scala apache-spark java-8 eclipse-luna

我正在 Eclipse Luna 中使用 Java 1.8 尝试 Spark 编程示例,并具有以下代码 -

JavaPairRDD<String, Integer> counts = ones
                .reduceByKey(new Function2<Integer, Integer, Integer>() {
                    @Override
                    public Integer call(Integer i1, Integer i2) {
                        return i1 + i2;
                    }
                });
List<Tuple2<String, Integer>> output = counts.collect(); //Compilation Error

我正在使用M2Eclipse构建和创建jar,并使用spark-submit在我的本地执行jar。 jar 正在工作并打印正确的输出,但 Eclipse 始终将上述行显示为编译错误 - The type Tuple2 is not generic; it cannot be parameterized with arguments <String, Integer>

甚至 Spark 网页中引用的编程示例也使用与 Tuple2 相同的表示法。 https://spark.apache.org/docs/0.9.0/java-programming-guide.html

我无法理解为什么 Eclipse 将其显示为编译错误,因为收集调用的返回类型是 List<Tuple2<String,Integer>>

非常感谢任何帮助。

最佳答案

正如 @Holger 在评论中提到的,2 个 scala-library jar 已添加到构建路径中。删除了早期版本,编译错误消失了。

关于java - 在 Spark Java 应用程序中使用 Tuple2 时出现编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30848217/

相关文章:

apache-spark - 打开 Spark 1.5.0 时出错

apache-spark - Spark应用程序崩溃后如何在Yarn中保留Spark执行器日志

scala - 如何在 Spark 中处理 XML 文件?

Java 正则表达式模式将日期格式拉至第一个正斜杠

java - 用于非数据库结构的 JDBC 模拟器

java - JUnit 测试以测试原始类型到包装类的转换

scala - Scala 中 NonFatal 和 Exception 的区别

json - 将 Akka actorRef 发送到 json

Java Swing - 如何制作下一个和上一个按钮来显示数组中对象的变量?

scala - neo4j 3.0 嵌入式 - 无节点