我正在尝试执行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>>
我无法找到适当的文件。如果有任何链接可以更好地理解这一点,那也会有所帮助。感谢。
答案 0 :(得分:1)
根据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会引发错误; - )