У меня есть следующий СДР, представляющий данные о продажах:
val rddSales:RDD[((String, String), SalesData)]
Я пытаюсь создать reduceByKey
, где ключ - это строка, состоящая из (saleType + saleDate) из SalesData.
На самом деле я хочу отфильтровать SalesData с тем же saleType + saleDate, а затем вернуть RDD[((String, String), SalesData)]
без дубликатов.
Я попробовал следующий подход: сначала сопоставил СДР со структурой, где ключом является (saleType + saleDate), а значением является SalesData. Затем вызывается ReduByKey, выбирая первое вхождение записи с определенным ключом.
Это правильный подход? И как следует вернуться к исходной структуре СДР? После того, как lowerByKey у меня есть RDD[((String), SalesData)]
rddSales.map(rddSales => (rddSales._2.saleType + rddSales._2.saleDate, rddSales._2)).reduceByKey((a, b) => a)