在Spark Java应用程序中使用Tuple2时发生编译错误
我正在EclipseLuna中试用使用Java1.8的Spark编程示例,代码如下-在Spark Java应用程序中使用Tuple2时发生编译错误,java,scala,apache-spark,java-8,eclipse-luna,Java,Scala,Apache Spark,Java 8,Eclipse Luna,我正在EclipseLuna中试用使用Java1.8的Spark编程示例,代码如下- JavaPairRDD<String, Integer> counts = ones .reduceByKey(new Function2<Integer, Integer, Integer>() { @Override public Integer call(Integer
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
javapairdd计数=个
.reduceByKey(新功能2(){
@凌驾
公共整数调用(整数i1、整数i2){
返回i1+i2;
}
});
列表输出=counts.collect()//编译错误
我正在使用M2Eclipse来构建和创建jar,并使用spark submit在本地环境中执行jarjar正在工作并打印正确的输出,但Eclipse总是将上述行显示为编译错误-类型Tuple2不是泛型的;它不能用参数参数化
甚至Spark网页中提到的编程示例也使用相同的Tuple2表示法
我无法理解为什么Eclipse将其显示为编译错误,因为对方付费调用的返回类型是列表
非常感谢您的帮助。正如@Holger在评论中提到的,在构建路径中添加了2个scala库jar。删除了早期版本,编译错误消失。正如@Holger在评论中提到的,在构建路径中添加了2个scala库JAR。删除了早期版本,编译错误消失。这也有助于解决我在IntelliJ Idea上遇到的问题。我调用了一个函数,其中一个参数是泛型类型,Tuple2是一个参数。它总是显示错误,但我可以通过编译。这使我困惑了好几天。在删除几个相关的切分罐(其中包含一些相关的scala库)后,错误消失了。这也有助于解决我在IntelliJ Idea上的问题。我调用了一个函数,其中一个参数是泛型类型,Tuple2是一个参数。它总是显示错误,但我可以通过编译。这使我困惑了好几天。删除几个相关的切分jar(其中包含一些相关的scala库)后,错误消失。是否导入了
java.util.List
和scala.Tuple2
?是。这两个类都是导入的。如果您的包中没有其他Tuple2
类,请说明。谢谢Holger。。。我的构建路径中有两个scala库jar。删除了一个jar,编译错误消失了。可能您现在可以回答自己的问题,或者@Holger可以。您是否导入了java.util.List
和scala.Tuple2
?是的。这两个类都是导入的。如果您的包中没有其他Tuple2
类,请说明。谢谢Holger。。。我的构建路径中有两个scala库jar。删除了一个jar,编译错误消失了。可能您现在可以回答自己的问题,或者@Holger可以。您是否导入了java.util.List
和scala.Tuple2
?是的。这两个类都是导入的。如果您的包中没有其他Tuple2
类,请说明。谢谢Holger。。。我的构建路径中有两个scala库jar。删除了一个jar,编译错误消失了。也许你现在可以回答你自己的问题,或者@Holger可以。