如何使用scala从元组的元组形成元组?

如何使用scala从元组的元组形成元组?,scala,collections,apache-spark,Scala,Collections,Apache Spark,我的输入是,它的形式是RDD[(Int,(String,String)),Int] 我希望输出为 (3,2) (4) (3,2) 您可以执行以下操作: val data: RDD[((Int,(String,String)),Int)] = ??? val treated = data.groupBy(_._1._2._1).map(_._2.map(_._2)) 这将以您想要的形式为您提供一个RDD[(String,Iterable[Int])]。结果的类型是什么RDD[(字符串,任意)

我的输入是,它的形式是RDD[(Int,(String,String)),Int]

我希望输出为

(3,2)
(4)
(3,2)

您可以执行以下操作:

val data: RDD[((Int,(String,String)),Int)] = ???

val treated = data.groupBy(_._1._2._1).map(_._2.map(_._2))

这将以您想要的形式为您提供一个
RDD[(String,Iterable[Int])]

结果的类型是什么
RDD[(字符串,任意)]
?或者可能
RDD[(字符串,Seq[Int])]
?我需要为下一步获取这两个值。我认为该类型不会生成任何pblm…您不应该使用元组作为列表。但是如果我们使用groupBY,如果出现大数据,它将无法工作,或者系统可能会出错stuck@rosy,如果您想将所有“sunny”组合在一起正如你的问题所暗示的,你别无选择,只能阅读所有的输入。这个答案确实收集了每一行的所有数据,但这并不多。如果您想要一个最小版本,请将每个项目仅转换为sunny/cloud/rain和最后一个值,然后再转换为groupBy--但您将在数据中为每个项目存储一些内容,因为这是您的问题所固有的。我非常确定Spark可以高效地实现
groupBy
。这仅仅是一次洗牌。ys…groupBy在spark中很有效,但如果我们提供1GB或2GB数据,它就会卡住…我确信这一点。。。。。。。。
val data: RDD[((Int,(String,String)),Int)] = ???

val treated = data.groupBy(_._1._2._1).map(_._2.map(_._2))