Вопрос: в pandas при удалении дубликатов вы можете указать, какие столбцы сохранить. Есть ли эквивалент в Spark Dataframes?
Pandas:
df.sort_values('actual_datetime', ascending=False).drop_duplicates(subset=['scheduled_datetime', 'flt_flightnumber'], keep='first')
Искры данных (я использую Spark 1.6.0) не имеет опции сохранения
df.orderBy(['actual_datetime']).dropDuplicates(subset=['scheduled_datetime', 'flt_flightnumber'])
Представьте "schedule_datetime" и "flt_flightnumber" - столбцы 6, 17. Создавая ключи, основанные на значениях этих столбцов, мы также можем дедуплицировать
def get_key(x):
return "{0}{1}".format(x[6],x[17])
df= df.map(lambda x: (get_key(x),x)).reduceByKey(lambda x,y: (x))
но как указать сохранить первую строку и избавиться от других дубликатов? Как насчет последней строки?