グループ化と集計 II
これまでに見た GroupedData のメソッドに加えて、.agg() メソッドもあります。
このメソッドでは、pyspark.sql.functions サブモジュールの任意の集約関数を使った、集約列式を渡すことができます。
このサブモジュールには、標準偏差の計算などに役立つ関数が多数含まれています。ここにあるすべての集約関数は、GroupedData テーブル内の列名を引数に取ります。
ワークスペースには、spark という SparkSession と Spark DataFrame の flights が既に用意されています。前の演習で作成したグループ化済みの DataFrame もそのまま使えます。
この演習はコースの一部です
PySpark入門
演習の手順
- サブモジュール
pyspark.sql.functionsをFとしてインポートします。 month列とdest列の両方でグループ化したGroupedDataテーブルby_month_destを作成します。2 つの列は別々の引数として、それぞれ文字列で渡してください。by_month_destDataFrame に対して.avg()メソッドを使い、各月・各目的地ごとのdep_delayの平均を求めます。.agg()メソッドと関数F.stddev()を使って、dep_delayの標準偏差を求めます。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Import pyspark.sql.functions as F
import ____ as F
# Group by month and dest
by_month_dest = flights.groupBy(____)
# Average departure delay by month and destination
by_month_dest.____.show()
# Standard deviation of departure delay
by_month_dest.agg(F.____(____)).show()