Začněte nyníZačněte zdarma

Agregace krok za krokem

Jestli použít tečkovou notaci nebo SQL, je věcí osobní preference. Jak ale ukazuje videolekce, v některých situacích je SQL jednodušší. A naopak – tečková notace může v určitých případech přinést nečekaný výsledek, například když druhá agregace na sloupci přepíše výsledek té předchozí. Jak bylo zmíněno ve videu, základní syntaxe agg v PySparku umožňuje provést vždy jen jednu agregaci na každý sloupec.

Následující cvičení počítají čas prvního odjezdu pro každou vlakovou linku.

První dva dotazy dávají stejný výsledek. Druhé dva však nikoli. Dokážeš přijít na to, proč?

Toto cvičení je součástí kurzu

Úvod do Spark SQL v Pythonu

Zobrazit kurz

Pokyny k cvičení

  • Doplň prázdná místa tak, aby první dvojice příkazů zobrazila shodný výsledek.
  • Čtvrtý výsledek s názvem result je pokus o naivní replikaci předchozího řádku. Jeho výsledek je ale překvapivě jiný. Jak? Doplň prázdné místo, které vypíše název druhého sloupce proměnné result.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# Give the identical result in each command
spark.sql('SELECT train_id, MIN(time) AS start FROM schedule GROUP BY train_id').show()
df.groupBy('____').agg({'time':'____'}).withColumnRenamed('____', 'start').show()

# Print the second column of the result
spark.sql('SELECT train_id, MIN(time), MAX(time) FROM schedule GROUP BY train_id').show()
result = df.groupBy('train_id').agg({'time':'min', 'time':'max'})
result.show()
print(result.columns[____])
Upravit a spustit kód