1. Nauka
  2. /
  3. Kursy
  4. /
  5. Wprowadzenie do Spark SQL w Pythonie

Connected

ćwiczenie

Przekształć funkcję okna z notacji z kropką na SQL

Dodamy kolumnę do rozkładu jazdy pociągów, tak aby każdy wiersz zawierał liczbę minut potrzebnych pociągowi do dotarcia do następnego przystanku.

  • Masz do dyspozycji ramkę danych df, gdzie df.columns == ['train_id', 'station', 'time'].
  • df jest zarejestrowana jako tabela SQL o nazwie schedule.
  • Poniższe zapytanie z funkcją okna używa notacji z kropką i zwraca nową ramkę danych 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)

Zwróć uwagę na użycie funkcji unix_timestamp, która odpowiada funkcji SQL UNIX_TIMESTAMP.

Pamiętaj o szablonie w przykładowym kodzie. Sformatowanie odpowiedzi zgodnie z szablonem zapobiegnie odrzuceniu jej z powodu błędu formatowania.

Instrukcje

100 XP
  • Napisz zapytanie SQL, które da wynik identyczny jak dot_df. Sformatuj zapytanie zgodnie z szablonem (tzn. zastąp odpowiednie miejsca zaznaczone podkreślnikami _____).