1. 학습
  2. /
  3. 강의
  4. /
  5. Pythonで学ぶ Spark SQL 入門

Connected

연습 문제

ドット記法のウィンドウ関数をSQLに変換する

各行に「次の停車駅に到着するまでの分数」を持たせる列を、列車の時刻表に追加します。

  • df.columns == ['train_id', 'station', 'time'] のデータフレーム df があります。
  • df は schedule という名前のSQLテーブルとして登録されています。
  • 次のウィンドウ関数クエリはドット記法を使っています。新しいデータフレーム dot_df を返します。
window = Window.partitionBy('train_id').orderBy('time')
dot_df = df.withColumn('diff_min', 
                    (unix_timestamp(lead('time', 1).over(window),'H:m') 
                     - unix_timestamp('time', 'H:m'))/60)

unix_timestamp 関数は、SQLの UNIX_TIMESTAMP 関数と同等である点に注意してください。

サンプルコードのスキャフォールディングに注意してください。スキャフォールディング(プレースホルダーのアンダースコア _____)に合わせて解答を整形すると、書式上の問題による誤った不正解判定を防げます。

지침

100 XP
  • dot_df と同一の結果を得るSQLクエリを作成してください。クエリはスキャフォールディング(プレースホルダーのアンダースコア _____)に従って整形してください。