我正在尝试执行 JavaPairRDD 和 JavaPairRDD> 的 leftOuterJoin,并且函数签名返回类型为
JavaPairRDD<Integer, Tuple2<Integer, Optional<Map<Integer, Integer>>>>
此处可选的是com.google.common.base.Optional
当我执行 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>>>
.
这是你写的,除了Spark的java API中定义了Optional类型:org.apache.spark.api.java.Optional<T>
。它不是 Google 定义的,因此您的 IDE 会向您抛出错误;-)
关于java - leftOuterJoin JavaPairRDD<Integer, Integer> 和 JavaPairRDD<Integer, Map<Integer, Integer>>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50363487/