2016-07-31 7 views
5

질문 : 팬더에서 중복을 삭제할 때 보관할 열을 지정할 수 있습니다. Spark Dataframes에 상응하는 항목이 있습니까?스파크 데이터 프레임 중복 제거 및 첫 번째 유지

팬더 :

df.sort_values('actual_datetime', ascending=False).drop_duplicates(subset=['scheduled_datetime', 'flt_flightnumber'], keep='first') 

스파크 dataframe (나는 불꽃 1.6.0을 사용) 킵 옵션

df.orderBy(['actual_datetime']).dropDuplicates(subset=['scheduled_datetime', 'flt_flightnumber']) 

'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)) 

의 중복을 제거 할 수 있지만 방법 첫 번째 행을 유지하고 다른 중복 제거 을 지정? 마지막 행은 어때? 기본적으로

+4

당신이 열 조합을 지정하고 속는의 나머지 부분을 제거하기에 따라 첫 번째 행을 유지하는 dropDuplicates' 당신은'실행 유지합니다. 코드가 이미 원하는대로하고 있지 않습니까? –

+0

테스트를 거쳤으며 실제로 그런 경우입니다. –

+0

하지만 마지막 행을 유지하려면 어떻게해야합니까? 중복 값에 대해 하나의 열만 찾고 있습니다. – hipoglucido

답변

0

사용 dropDuplicates 방법은 첫 번째 occurance

관련 문제