1. Learn
  2. /
  3. Cursuri
  4. /
  5. Introducere în Spark SQL în Python

Connected

exercițiu

Convertește funcția de fereastră din notație cu punct în SQL

Vom adăuga o coloană la un orar de tren, astfel încât fiecare rând să conțină numărul de minute până la următoarea oprire a trenului.

  • Avem un DataFrame df unde df.columns == ['train_id', 'station', 'time'].
  • df este înregistrat ca tabel SQL cu numele schedule.
  • Interogarea cu funcție de fereastră de mai jos folosește notația cu punct și returnează un nou 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)

Observă utilizarea funcției unix_timestamp, care este echivalentă cu funcția SQL UNIX_TIMESTAMP.

Atenție la structura de tip schelet din codul exemplu. Formatarea răspunsului conform scheletului va preveni respingerea eronată a soluției din cauza unei probleme de formatare.

Instrucțiuni

100 XP
  • Creează o interogare SQL care să producă un rezultat identic cu dot_df. Formatează interogarea conform scheletului (adică înlocuiește spațiile marcate cu _____).