を使用してRDDのグループ化:は、私は、これらの要素とRDDを持つ配列
("a", Array(1, 2)) | ("b", Array(3, 4)) | ("c", Array(1, 2))
私はそれがこれを持っているために、配列を使用して、グループに望む:
(Array("a", "c"), Array(1, 2)) | (Array("b"), Array(3, 4))
それを行う方法(好ましくはScalaで)?
を使用してRDDのグループ化:は、私は、これらの要素とRDDを持つ配列
("a", Array(1, 2)) | ("b", Array(3, 4)) | ("c", Array(1, 2))
私はそれがこれを持っているために、配列を使用して、グループに望む:
(Array("a", "c"), Array(1, 2)) | (Array("b"), Array(3, 4))
それを行う方法(好ましくはScalaで)?
あなたはスパークのデフォルトのパーティショナを使用してキーとして配列を使用することはできませんので、あなたは、リストに変換アレイによってグループに持って、その後直後バックあなたがしている構造に結果をマップします:
val input: RDD[(String, Array[Int])] = ???
val result: RDD[(Array[String], Array[Int])] = input
.groupBy(_._2.toList) // group by array
.values // keep values only, of type Iterable[(String, Array[Int])]
.map(it => (it.map(_._1).toArray, it.head._2)) // map back to requested format
これは簡単ですが、試してみましたか? – Dici