1. Učit se
  2. /
  3. Kurzy
  4. /
  5. Foundations of PySpark

Connected

Cvičení

Výběr sloupců II

Stejně jako v SQL můžeš metodou .select() provádět operace nad jednotlivými sloupci. Pokud vybíráš sloupec zápisem df.colName, můžeš rovnou provést libovolnou operaci – .select() vrátí transformovaný sloupec. Například:

flights.select(flights.air_time/60)

vrátí sloupec s délkou letu v hodinách místo minut. Pomocí metody .alias() pak můžeš přejmenovat sloupec, který vybíráš. Pokud bys chtěl/a vybrat sloupec duration_hrs (který v DataFrame není), napíšeš:

flights.select((flights.air_time/60).alias("duration_hrs"))

Ekvivalentní metoda .selectExpr() přijímá SQL výrazy jako řetězec:

flights.selectExpr("air_time/60 as duration_hrs")

Klíčové slovo SQL as je zde ekvivalentem metody .alias(). Pro výběr více sloupců jednoduše předej více řetězců.

Nezapomeň, že SparkSession pojmenovaná spark je v tvém workspace již k dispozici, stejně jako Spark DataFrame flights.

Pokyny

100 XP

Vytvoř tabulku s průměrnou rychlostí každého letu – oběma způsoby.

  • Vypočítej průměrnou rychlost vydělením sloupce distance sloupcem air_time (převedeným na hodiny). Pomocí metody .alias() pojmenuj tento sloupec "avg_speed". Výsledek ulož do proměnné avg_speed.
  • Vyber sloupce "origin", "dest", "tailnum" a avg_speed (bez uvozovek!). Výsledek ulož jako speed1.
  • Vytvoř stejnou tabulku pomocí .selectExpr() a řetězce obsahujícího SQL výraz. Výsledek ulož jako speed2.