我正在尝试执行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会向您抛出错误;-)