Kom igångKom igång gratis

Aggregering, steg för steg

Om du föredrar punktnotation eller SQL är en smaksak. Som demonstrerades i videoövningen finns det dock fall där SQL är enklare. Likaså finns det fall där punktnotationen ger ett oväntat resultat – till exempel när en andra aggregering på en kolumn skriver över en tidigare aggregering på samma kolumn. Som nämndes i videon kan agg i PySpark bara utföra en enda aggregering per kolumn åt gången.

Följande övningar beräknar avgångstiden för det första tåget på varje tåglinje.

De första två frågorna ger samma resultat. De sista två gör det däremot inte. Kan du lista ut varför?

Den här övningen är en del av kursen

Introduktion till Spark SQL i Python

Visa kurs

Övningsinstruktioner

  • Fyll i luckorna så att det första paret kommandon visar identiska resultat.
  • Det fjärde resultatet, med namnet result, är ett naivt försök att replikera föregående rad. Det ger dock ett oväntat annorlunda resultat. Hur? Fyll i luckan för att skriva ut namnet på den andra kolumnen i result.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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[____])
Redigera och kör kod