scala - 将 RDD 中的元组分解为两个元组

标签 scala apache-spark rdd iterable

我有一个 RDD[(String, (Iterable[Int], Iterable[Coordinate]))] 我想做的是将 Iterable[Int] 分解为元组,每个元组都像 (String,Int,Iterable[Coordinate])

举个例子,我想转换:

('a',<1,2,3>,<(45.34,32.33),(45.36,32.34)>)
('b',<1>,<(46.64,32.66),(46.67,32.71)>)

('a',1,<(45.34,32.33),(45.36,32.34)>)
('a',2,<(45.34,32.33),(45.36,32.34)>)
('a',3,<(45.34,32.33),(45.36,32.34)>)
('b',1,<(46.64,32.66),(46.67,32.71)>)

Scala 是怎么做的?

最佳答案

尝试使用flatMap:

rdd.flatMap {case (v, i1, i2) => i1.map(i=>(v, i, i2)}

关于scala - 将 RDD 中的元组分解为两个元组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34649761/

相关文章:

scala - 错误 : type mismatch flatMap

postgresql - 集群中有 20 个分区但没有工作人员被使用的 RDD

python - 如何获取 Spark DataFrame 中每行列表中最高值的索引? [PySpark]

apache-spark - 如何爆炸结构数组?

python - (python 矩阵)可视化 mllib 评估

Scala 模糊性与无括号函数调用

scala - 我们可以通过参数调用scala函数多态而不是无形吗

scala - 尽管重新分区,但只能压缩每个分区中元素数量相同的 RDD

scala - 解码以下 Scala 代码

scala - 使用 Spark DataFrame 的地理过滤器