2017-08-31 5 views
0

を選択し、私は特定の列で重複をドロップします:スパーク2.0.0は、私がデータフレームにロードされ、安定した一定のデータセットを考慮すると、スパーク2.0.0上</p> <p>をpyspark2を実行している明確な不安定な結果

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はまだシャッフルされていないので十分ではありません)。

関連する問題