Vytváření sloupců
V této kapitole se naučíš používat metody třídy DataFrame ze Sparku k provádění běžných datových operací.
Podívejme se na operace se sloupci. Ve Sparku k tomu slouží metoda .withColumn(), která přijímá dva argumenty. Prvním je řetězec s názvem nového sloupce, druhým samotný nový sloupec.
Nový sloupec musí být objektem třídy Column. Vytvořit ho je jednoduché – stačí extrahovat sloupec z DataFrame pomocí df.colName.
Aktualizace Spark DataFrame se trochu liší od práce v pandas, protože Spark DataFrame je immutable (neměnný). To znamená, že ho nelze přímo upravit, a proto nelze sloupce aktualizovat na místě.
Všechny tyto metody tedy vracejí nový DataFrame. Chceš-li původní DataFrame přepsat, musíš vrácený DataFrame znovu přiřadit pomocí metody takto:
df = df.withColumn("newCol", df.oldCol + 1)
Výše uvedený kód vytvoří DataFrame se stejnými sloupci jako df, navíc s novým sloupcem newCol, kde každá hodnota odpovídá příslušné hodnotě ze sloupce oldCol zvýšené o jedničku.
Chceš-li přepsat existující sloupec, jednoduše předej jeho název jako první argument!
Nezapomeň, že v tvém pracovním prostoru je již k dispozici SparkSession s názvem spark.
Toto cvičení je součástí kurzu
Foundations of PySpark
Pokyny k cvičení
- Pomocí metody
spark.table()s argumentem"flights"vytvoř DataFrame obsahující hodnoty tabulkyflightsz.catalog. Ulož ho jakoflights. - Zobraz prvních několik řádků
flightspomocíflights.show(). Podívej se na výstup: sloupecair_timeobsahuje délku letu v minutách. - Aktualizuj
flightstak, aby obsahoval nový sloupecduration_hrss délkou každého letu v hodinách (budeš muset vydělitair_timepočtem minut v hodině).
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# Create the DataFrame flights
flights = spark.table(____)
# Show the head
____.____()
# Add duration_hrs
flights = flights.withColumn(____)