问题:在丢弃重复项时,在pandas中,您可以指定要保留的列.Spark Dataframes中是否有等价物?
熊猫:
df.sort_values('actual_datetime', ascending=False).drop_duplicates(subset=['scheduled_datetime', 'flt_flightnumber'], keep='first')
Run Code Online (Sandbox Code Playgroud)
Spark数据帧(我使用Spark 1.6.0)没有keep选项
df.orderBy(['actual_datetime']).dropDuplicates(subset=['scheduled_datetime', 'flt_flightnumber'])
Run Code Online (Sandbox Code Playgroud)
想象一下'scheduled_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))
Run Code Online (Sandbox Code Playgroud)
但如何指定保留第一行并摆脱其他重复?最后一排怎么样?