始める無料で始める

グループ化と集計 I

集計が強力なのは、グループ化を組み合わせられる点にあります。PySpark にはグループ化されたデータフレーム用のクラス pyspark.sql.GroupedData があり、直前の 2 つの演習で登場しました。

引数なしで DataFrame に対して .groupBy() メソッドを呼び出すことで、グループ化された DataFrame を作成する方法を学びました。

次は、DataFrame 内の 1 列以上の列名を .groupBy() メソッドに渡すと、SQL クエリの GROUP BY 句と同じように集計メソッドが動作することを確認します!

ワークスペースには spark という SparkSession と、Spark DataFrame の flights がすでに用意されていることを覚えておいてください。

この演習はコースの一部です

PySpark入門

コースを見る

演習の手順

  • tailnum でグループ化した DataFrame by_plane を作成します。
  • 引数なしの .count() メソッドを使って、各機体が飛行した回数を数えます。
  • origin でグループ化した DataFrame by_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()
コードを編集して実行