Python

PySparkでgroupByによる集計処理と統計値の計算

今回はPySparkでのgroupByによる集計処理を書いておきます。

集計は本当によくやる処理ですし、PySparkでももれなくSpark DataFrameの処理に使いますから、しっかりやっていきましょう!

ちなみに"groupby"は"groupBy"のエイリアスなんだそうですので、こちらでも使えます。
https://spark.apache.org/docs/latest/api/python/reference/api/pyspark.sql.DataFrame.groupBy.html

 

集計とカウント

まずはgroupbyをするときの典型例である集計してカウントをする処理をやってみます。

データはこちらのOnline Retailデータです。

 

 

Desctiption列でgroupbyして、それぞれのDescriptionのカウントをしてみます。

 

 

 
あまり違和感はないのではないでしょうか。

Pandasとかでやったことがあれば同じような感じですね。

次は、上のやつにちょっと追加でカウント数でソートする処理も加えてみます。

 

 

 

最後に、groupbyして計算したカウントを条件に使うパターンです。

 

 
このようにしてPySparkでもgroupbyをしてSpark DataFrameに対して集計処理をかけることができます。

 

統計値の計算

集計処理は単に上のようにカウントしたりだけではなく、平均や最大値などの統計値を出す時にも使えます。

例えば、Quantity列でgroupbyして平均値を計算する例が以下になります。

 

 

 

最小値や最大値も同様です。

 

 

 

aggを使った集計計算

これまではgroupbyを使って集計処理をやりましたが、aggメソッドを使っても集計ができます。

例えば、以下のようにQuantity列に対してgroupbyして平均を計算するコードはこのようにも書くことができます。

 

 

 
こちらの方が使い勝手がいいときもあるので、こちらの方法も覚えておくとよいかと思います!

おすすめ記事

1

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

2

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

3

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

-Python

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