始める無料で始める

ウィンドウ関数SQLでのランニングサム

ウィンドウ関数は集約関数に似ていますが、グループごとに1行ではなく、データセットの各行に対して出力を返す点が異なります。

ウィンドウ関数とあわせて集計を行うことができます。ウィンドウ関数を使ったランニングサムは、JOIN を使う場合よりもずっとシンプルに書けます。クエリの実行時間が大幅に短くなることもあります。

train_idstationtimediff_min の列を持つ schedule というテーブルが用意されています。diff_min 列は、現在の駅から次の駅までの経過時間(分)を表します。

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

Pythonで学ぶ Spark SQL 入門

コースを見る

演習の手順

  • このデータセットの各レコードに、running_total という追加列を付与するクエリを実行してください。running_total 列は、diff_min 列が示す駅間の時間差を SUM() で累積したものです。
  • クエリを実行し、結果を表示してください。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Add col running_total that sums diff_min col in each group
query = """
SELECT train_id, station, time, diff_min,
____(____) OVER (PARTITION BY ____ ORDER BY ____) AS running_total
FROM schedule
"""

# Run the query and display the result
spark.____(query).show()
コードを編集して実行