グループ化と集計 I
集計が強力なのは、グループ化を組み合わせられる点にあります。PySpark にはグループ化されたデータフレーム用のクラス pyspark.sql.GroupedData があり、直前の 2 つの演習で登場しました。
引数なしで DataFrame に対して .groupBy() メソッドを呼び出すことで、グループ化された DataFrame を作成する方法を学びました。
次は、DataFrame 内の 1 列以上の列名を .groupBy() メソッドに渡すと、SQL クエリの GROUP BY 句と同じように集計メソッドが動作することを確認します!
ワークスペースには spark という SparkSession と、Spark DataFrame の flights がすでに用意されていることを覚えておいてください。
この演習はコースの一部です
PySpark入門
演習の手順
- 列
tailnumでグループ化した DataFrameby_planeを作成します。 - 引数なしの
.count()メソッドを使って、各機体が飛行した回数を数えます。 - 列
originでグループ化した DataFrameby_originを作成します。 - 列
air_timeの.avg()を計算して、PDX と SEA 発の平均飛行時間を求めます。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Group by tailnum
by_plane = flights.groupBy("____")
# Number of flights each plane made
by_plane.____.show()
# Group by origin
by_origin = flights.groupBy("____")
# Average duration of flights from PDX and SEA
by_origin.avg("____").show()