У меня есть таблица dataframeDS. В scala я могу удалить дубликаты по первичным ключам, используя следующую команду:
import org.apache.spark.sql.expressions.Window.partitionBy
import org.apache.spark.sql.functions.row_number
val window = partitionBy(primaryKeySeq.map(k => tableDS(k)): _*).orderBy(tableDS(mergeCol).desc)
tableDS.withColumn("rn", row_number.over(window)).where($"rn" === 1).drop("rn")
Мне нужно написать аналогичную вещь в python.primaryKeySeq - это список в Python.Я попробовал первое утверждение, как это -
from pyspark.sql.window import Window
import pyspark.sql.functions as func
window = Window.partitionBy(primaryKeySeq).orderBy(tableDS[bdtVersionColumnName].desc())
tableDS1=tableDS.withColumn("rn",rank().over(window))
Это не дает мне правильный результат.