2つのRDD [Int]ソースとnoSourcesVertexがあります。 2つの新しいRDDを作成するマップを計算したいと思います。スパークのOptionとNoneの使用scalaの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)
しかし、私は前例のコードを実行するよ、私はエラーを持っている:
error: type mismatch; found : org.apache.spark.rdd.RDD[(Some[Int], (Some[Int], None.type))] required: org.apache.spark.rdd.RDD[(Some[Int], (Some[Int], Some[Int]))] val outInit = sourcesFormatted.union(noSourcesVertexFormatted)
私はその3列異なる型を持つ2 RDDに参加しようとしているため、このエラーが発生したと思います。
私はOptionのマカニズムの主張と、Some(something)とNoneが同じタイプ - > Optionを持っているため、この動作が期待できませんでした。
なぜこのエラーが発生しますか?あなたはタイプについての具体的でなければならないので