【发布时间】:2017-10-18 21:34:42
【问题描述】:
我有 2 个 RDD[Int] 源和 noSourcesVertex。 我想计算一个可以创建 2 个新 RDD 的地图。
val sourcesFormatted = sources.map(x => (Some(x), (Some(x), Some(x))))
val noSourcesVertexFormatted = noSourcesVertex.map(x => (Some(x), (Some(x), None)))
val outInit = sourcesFormatted.union(noSourcesVertexFormatted)
但是当我执行前面的代码时,我有一个错误:
错误:类型不匹配;发现:org.apache.spark.rdd.RDD[(Some[Int], (Some[Int], None.type))] 需要: org.apache.spark.rdd.RDD[(Some[Int], (Some[Int], Some[Int]))] val outInit = sourcesFormatted.union(noSourcesVertexFormatted)
我认为发生此错误是因为我试图加入 2 个第三列具有不同类型的 RDD。
我没想到会出现这种行为,因为我理解了 Option 的机制,Some(something) 和 None 具有相同的类型 -> Option。
为什么我有这个错误?
【问题讨论】:
标签: scala apache-spark rdd