Scala-如何将一对RDD转换为RDD?

时间:2018-10-08 13:11:57

标签: scala apache-spark rdd

我有一个RDD[Sale],只想保留最新的销售记录。因此,我要做的是创建一个RDD对,然后执行分组和过滤:

val sales: RDD[(String, Sale)] = rawSales.map(sale => sale.id -> sale)
      .groupByKey()
      .mapValues(_.maxBy(_.timestamp))

但是在这种情况下,如何返回RDD[Sale]而不是RDD对呢?

我发现的唯一方法是:

val value: RDD[Sale] = sales.map(salePaired => salePaired._2)

这是最合适的解决方案吗?

1 个答案:

答案 0 :(得分:1)

您可以直接访问RDD对中的键或值,就像访问任何地图一样

val keys: RDD[String] = sales.keys
val values: RDD[Sale] = sales.values