2016-07-31 11 views
5

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

+4

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? –

+0

Test ettim ve gerçekten de öyle görünüyor. –

+0

Ama sonra son satırı tutmak istiyorsam ne yapmalıyım? Yinelenen değerler için sadece bir sütuna bakıyorum – hipoglucido

cevap

0

kullanım dropDuplicates yöntemi ilk görüldüğü

İlgili konular