ÎncepețiÎncepe gratuit

Agregare pas cu pas

Alegerea între notația cu punct și SQL ține de preferința personală. Totuși, așa cum s-a demonstrat în exercițiul video, există situații în care SQL este mai simplu. De asemenea, tot în lecția video s-a arătat că notația cu punct poate produce rezultate neașteptate – de exemplu, când o a doua agregare pe o coloană o suprascrie pe prima. Așa cum s-a menționat în video, sintaxa de bază a agg în PySpark permite o singură agregare pe fiecare coloană, la un moment dat.

Exercițiile următoare calculează ora primei plecări pentru fiecare linie de tren.

Primele două interogări produc același rezultat. Ultimele două, însă, nu. Poți să îți dai seama de ce?

Acest exercițiu face parte din cursul

Introducere în Spark SQL în Python

Vezi cursul

Instrucțiuni pentru exercițiu

  • Completează spațiile libere pentru ca prima pereche de comenzi să afișeze rezultate identice.
  • Al patrulea rezultat, numit result, este o încercare naivă de a replica linia anterioară. Totuși, produce un rezultat diferit față de ce te-ai aștepta. Cum anume? Completează spațiul liber pentru a afișa numele celei de-a doua coloane din result.

Exercițiu interactiv practic

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

# 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[____])
Editează și rulează codul