我有以下代表销售数据的 RDD:
val rddSales:RDD[((String, String), SalesData)]
我正在尝试将reduceByKey其中的键设为由 SalesData 中的 (saleType + saleDate) 组成的字符串。其实我想用相同的salesType + saleDate过滤掉SalesData,然后返回RDD[((String, String), SalesData)]没有重复的。
我尝试了以下方法:首先将RDD映射到键为(saleType + saleDate)且值为SalesData的结构。然后调用 reduceByKey 选择具有特定键的记录的第一次出现。
这是正确的方法吗?又应该如何映射回最初的 RDD 结构呢?在 reduceByKey 之后我有RDD[((String), SalesData)]
rddSales.map(rddSales => (rddSales._2.saleType + rddSales._2.saleDate, rddSales._2)).reduceByKey((a, b) => a)