1. Učit se
  2. /
  3. Kurzy
  4. /
  5. Úvod do Spark SQL v Pythonu

Connected

cvičení

Převod okenní funkce z tečkové notace do SQL

Do jízdního řádu vlaku přidáme sloupec, který bude v každém řádku obsahovat počet minut, za který vlak dorazí na další zastávku.

  • Máš k dispozici dataframe df, kde df.columns == ['train_id', 'station', 'time'].
  • df je zaregistrován jako SQL tabulka s názvem schedule.
  • Následující dotaz s okenní funkcí používá tečkovou notaci a vrací nový dataframe 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)

Všimni si použití funkce unix_timestamp, která odpovídá SQL funkci UNIX_TIMESTAMP.

Dbej na strukturu (scaffolding) v ukázkovém kódu. Pokud odpověď naformátuješ podle ní, předejdeš chybám při vyhodnocení způsobeným formátováním.

Pokyny

100 XP
  • Vytvoř SQL dotaz, který vrátí stejný výsledek jako dot_df. Dotaz naformátuj podle zadané struktury (tj. doplň chybějící části místo zástupných podtržítek _____).