我正在尝试执行JavaPairRDD和JavaPairRDD>的leftOuterJoin,并且在函数签名返回类型为

JavaPairRDD<Integer, Tuple2<Integer, Optional<Map<Integer, Integer>>>>


可选为com.google.common.base。可选

当我执行leftOuterJoin时,这是正确的返回类型吗?

我的IDE出现此错误

no instance(s) of type variable(s) W exist so that Optinal<W> conforms to Optional<Map<Integer, Integer>>


我找不到适合的文档。如果有任何链接可以更好地理解这一点,那也将有所帮助。谢谢。

最佳答案

根据javadoc(https://spark.apache.org/docs/2.2.0/api/java/index.html?org/apache/spark/api/java/JavaPairRDD.html),类型为JavaPairRDD<K, V>的RDD和类型为JavaPairRDD<K,W>的RDD之间的左外部联接将为您提供:JavaPairRDD<K,Tuple2<V,Optional<W>>>

这是您写的,除了Optional类型是在spark的Java API中定义的:org.apache.spark.api.java.Optional<T>。它不是Google定义的,因此您的IDE会向您抛出错误;-)

10-07 15:17