ÎncepețiÎncepe gratuit

Selectarea coloanelor

Echivalentul în Spark al instrucțiunii SELECT din SQL este metoda .select(). Aceasta acceptă mai multe argumente – câte unul pentru fiecare coloană pe care vrei să o selectezi. Argumentele pot fi fie numele coloanei ca șir de caractere, fie un obiect de tip coloană (folosind sintaxa df.colName). Când transmiți un obiect de tip coloană, poți efectua operații precum adunarea sau scăderea asupra acelei coloane pentru a modifica datele din ea, similar cu ce se întâmplă în interiorul metodei .withColumn().

Diferența dintre metodele .select() și .withColumn() este că .select() returnează doar coloanele pe care le specifici, în timp ce .withColumn() returnează toate coloanele DataFrame-ului, plus cea pe care ai definit-o. De obicei, este o idee bună să elimini coloanele de care nu ai nevoie încă de la începutul unei operații, ca să nu cari date inutile în timp ce prelucrezi setul de date. În acest caz, vei folosi .select(), nu .withColumn().

Amintește-ți că o sesiune SparkSession numită spark este deja disponibilă în spațiul tău de lucru, împreună cu DataFrame-ul Spark flights.

Acest exercițiu face parte din cursul

Fundamente PySpark

Vezi cursul

Instrucțiuni pentru exercițiu

  • Selectează coloanele "tailnum", "origin" și "dest" din flights transmițând numele coloanelor ca șiruri de caractere. Salvează rezultatul ca selected1.
  • Selectează coloanele "origin", "dest" și "carrier" folosind sintaxa df.colName, apoi filtrează rezultatul aplicând ambele filtre deja definite pentru tine (filterA și filterB), pentru a păstra doar zborurile de la SEA la PDX. Salvează rezultatul ca selected2.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# Select the first set of columns
selected1 = flights.select("____", "____", "____")

# Select the second set of columns
temp = flights.select(____.____, ____.____, ____.____)

# Define first filter
filterA = flights.origin == "SEA"

# Define second filter
filterB = flights.dest == "PDX"

# Filter the data, first by filterA then by filterB
selected2 = temp.filter(____).filter(____)
Editează și rulează codul