My DataFrame df
には、多対1のテーブルへの外部キーとして機能する列がdf
となっています。外部キーの一意の各値について、それは別の外部キーが含まれていますが、一度だけ、そのグループが空の状態の値を超えるすべてで:ここでPySpark DataFrame reduce_by
df.filter(df.foreignkey1 == "12345").select("foreignkey1", "foreignkey2").show()
+-----------+-----------+
|foreignkey1|foreignkey2|
+-----------+-----------+
| 12345| |
| 12345| |
| 12345| |
| 12345| 100002020|
| 12345| |
+-----------+-----------+
、私はforeignkey1
が12345であるすべてのエントリを選択している、とその隣にforeignkey2
という値が表示されました。私はこれまで、このダウン崩壊したい
:理論的には
+-----------+-----------+
|foreignkey1|foreignkey2|
+-----------+-----------+
| 12345| 100002020|
+-----------+-----------+
これの一部はそれをテストしているが、唯一、foreignkey1
のユニークな値ごとに1 foreignkey2
があるはずです。
私はSparkにとってかなり新しく、これは他の人に尋ねるのに適しているように思えます。どんな助けでも大歓迎です。私の最善の選択肢はdf.rdd.reduceByKey
ですか、それともgroupby関数と集約関数を使ってこれを行うにはもっと知的な方法がありますか?ありがとう!
だけ考えた:私は可能性がおそらくちょうど 'dropna()'とそれは長くにおけるユニークな値の数よりもだかどうかを確認'foreignkey1'です。しかし、それは 'foreignkey1 'に1つの' foreignkey2'があることを保証するものではありませんが、おそらくそれを強く示します。 – Quentin