Есть таблица с дублированными строками. Я пытаюсь уменьшить дубликаты и остаться с последним my_date
(если есть строки с одинаковым my_date
, не имеет значения, какой из них использовать)
val dataFrame = readCsv()
.dropDuplicates("my_id", "my_date")
.withColumn("my_date_int", $"my_date".cast("bigint"))
import org.apache.spark.sql.functions.{min, max, grouping}
val aggregated = dataFrame
.groupBy(dataFrame("my_id").alias("g_my_id"))
.agg(max(dataFrame("my_date_int")).alias("g_my_date_int"))
val output = dataFrame.join(aggregated, dataFrame("my_id") === aggregated("g_my_id") && dataFrame("my_date_int") === aggregated("g_my_date_int"))
.drop("g_my_id", "g_my_date_int")
Но после этого кода я, когда захватить distinct my_id
Я получаю примерно 3000
меньше, чем в исходной таблице. В чем может быть причина?
как отладить эту ситуацию?