1
質問タイトルはあまりにも暗黙的かもしれません。 のは、私たちが火花データフレームを持っているとしましょう:別の列に基づいて値の数を数えるには?
user_ID phone_number
--------------------------------
A 1234567
B 1234567
C 8888888
D 9999999
E 1234567
F 8888888
G 1234567
そして、私たちは各user_IDは、それとどのように多くのシェアuser_IDは同じPHONE_NUMBERのために、カウントする必要があります。前に記載されている表の場合、所望の結果は次のようになります。
user_ID count_of_userID_who_share_the_same_phone_number
----------------------------------------------------------------
A 4
B 4
C 2
D 1
E 4
F 2
G 4
それはspark.sql(query)
に自己結合クエリを記述することによって達成することができますが、パフォーマンスはかなり心臓破りです。 どのように私ははるかに高速な実装を得ることができますか?感謝:) self-join
よりも有意に優れて実行する必要がありスパークのWindow
機能を使用して
だけで試してみました、シンプルなspark.sqlクエリよりもはるかに速いです! thx – XXXShao
助けてくれてうれしいです。 –