Python

PySparkでデータフレームの結合(join)

データフレームの結合処理はPandasでもよくやりますよね。

PySparkでも結合処理は同じようにやることができますので、基本的な結合処理を確認しておきたいと思います。

ただし、僕の独断と偏見で、inner joinとleft joinだけ書いておきます(僕のイメージでは9割くらいの結合処理はinner joinとleft joinで事足りると思っているためです)。

ちなみにオフィシャルはこちらですので、詳しいことはこちらを参照ください。
https://spark.apache.org/docs/3.1.1/api/python/reference/api/pyspark.sql.DataFrame.join.html

 

PySparkでデータフレームの結合処理

Inner join

さて、まずはInner join(内部結合)ですね。

とりあえずデータの準備として、これら2つの適当なSpark DataFrameを用意することにします。

 

 

 

ではこの2つのデータフレームを使ってInner joinをしてみましょう。

やり方は次の通りで、結果はこのようになります。

 

 

 

joinのカッコの中に、(結合したいデータフレーム, 結合キー, 結合方法)とします。

今回はinner joinなので、結合方法は"inner"となり、結合キーは"id"です。

idが共通の2, 4のレコードだけ抽出されていますね。

 

Left join

では、left joinもやってみましょう。

left joinの場合は結合方法を"leftouter"とします(leftでもいいっぽい)。

想像できるかと思いますが、もしright joinしたい場合は"rightouter"とすればOKです(rightでもいいっぽい)。

 

 

 

こんな感じで無事left joinできています。

df1にleft joinするのでdf1は全て保持されたまま、そこにdf2の情報が付け加えられているというふうになっていますね!

とまぁ私の偏見でinner joinとleft joinだけやりましたが、もちろんcross joinとかもできますので、状況に応じて使い分けましょう。

おすすめ記事

1

お疲れさまです! 久しぶりの更新になってしまいましたが、僕が未経験からデータサイエンティストになるまでの転職活動の全記録を書き残しておきたいと思います。 僕は博士号を取得後に研究員として仕事をしていま ...

2

こんにちわ、さとしです! 気がつけばこのデータサイエンティスト転職から、1年が経とうとしています。 今はご時世的に外にも出られず、変化があまりない生活を送ったせいもあってか、なんかあっという間に1年が ...

3

データサイエンティストに転職して1年が経ち、いろいろな業務を経験させてもらいつつ、自分でもある程度本を読んできました。 仕事の話は下記の記事で書きましたが、自分で読んだ本については書いていないのでこの ...

-Python

Copyright© さとぶろぐ , 2022 All Rights Reserved Powered by AFFINGER5.