Soru: Yinelenen sütunları silerken, hangi sütunların saklanacağını belirleyebilirsiniz. Spark Dataframes'da bir eşdeğer var mı?kıvılcım veri karesi kopyalar çoğaltılır ve ilk kez saklanır
Pandalar:
df.sort_values('actual_datetime', ascending=False).drop_duplicates(subset=['scheduled_datetime', 'flt_flightnumber'], keep='first')
Kıvılcım dataframe (Ben Spark 1.6.0 kullanın) tutmak seçeneği
df.orderBy(['actual_datetime']).dropDuplicates(subset=['scheduled_datetime', 'flt_flightnumber'])
'scheduled_datetime' ve 'flt_flightnumber' Imagine yok sütunlar 6, 17 olan . Bu sütunların değerlerine dayalı anahtarlarını oluşturarak biz de
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))
deduplicate olabilir ama nasıl ilk satırı tutmak ve diğer kopyaların kurtulmak belirtmek için? Son sıraya ne dersin? Varsayılan olarak
sütunları kombinasyonu belirtilen ve safdilli geri kalanı kurtulmak başına ilk satırı tutuyor dropDuplicates' sen 'çalıştırmak tutar. Kodunuzun istediğiniz şeyi yapmadığından emin misiniz? –
Test ettim ve gerçekten de öyle görünüyor. –
Ama sonra son satırı tutmak istiyorsam ne yapmalıyım? Yinelenen değerler için sadece bir sütuna bakıyorum – hipoglucido