2017-08-31 84 views
0

我跑pyspark2過火花2.0.0火花2.0.0選擇不同的結果不穩定

考慮加載到數據幀穩定常數的數據集,我也被某些列拖放重複:

vw_ticket = read_csv(...) 
vw_ticket_in_booking = vw_ticket.dropDuplicates(['BOOKING_TICKET_ID']) 
vw_ticket_in_booking.createOrReplaceTempView('vw_ticket_in_booking') 

而且然後

spark.sql('select count(distinct(booking_id)) from vw_ticket_in_booking t').show() 

給出了空前絕後的結果,不同號碼,但

​​3210

總是穩定的。可能是什麼原因?

回答

2

dropDuplicate就像在做groupBy然後first。將會有一個洗牌和寫入來對數據進行排序,然後再對它們進行重複數據刪除。 這將導致不同的線路擺在首位。

如果您有想要保留哪一行值的想法,應該應用一個窗口函數來評估哪一行是第一行(因爲後面還會有一個隨機洗牌,因此sort將不夠用)。