我有一个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)
这是最合适的解决方案吗?
答案 0 :(得分:1)
您可以直接访问RDD对中的键或值,就像访问任何地图一样
val keys: RDD[String] = sales.keys
val values: RDD[Sale] = sales.values