Aan de slagGa gratis aan de slag

Meer ID-trucs

Zodra je een Spark-proces definieert, wil je het waarschijnlijk vaak hergebruiken. Afhankelijk van je behoeften wil je misschien dat je ID's bij een bepaalde waarde beginnen, zodat er geen overlap is met eerdere runs van de Spark-taak. Dit gedrag lijkt op hoe ID's zich in een relationele database gedragen. Jij hebt de taak gekregen om ervoor te zorgen dat de ID's die uit een maandelijkse Spark-taak komen, beginnen bij de hoogste waarde van de vorige maand.

De spark-sessie en twee DataFrames, voter_df_march en voter_df_april, zijn beschikbaar in je werkruimte. De bibliotheek pyspark.sql.functions is beschikbaar onder de alias F.

Deze oefening maakt deel uit van de cursus

Data opschonen met PySpark

Cursus bekijken

Oefeninstructies

  • Bepaal de hoogste ROW_ID in voter_df_march en sla deze op in de variabele previous_max_ID. De expressie .rdd.max()[0] haalt de maximale ID op.
  • Voeg een kolom ROW_ID toe aan voter_df_april die start bij de waarde previous_max_ID + 1.
  • Toon de ROW_ID's van beide DataFrames en vergelijk.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# Determine the highest ROW_ID and save it in previous_max_ID
____ = ____.select('ROW_ID').rdd.max()[0] + 1

# Add a ROW_ID column to voter_df_april starting at the desired value
voter_df_april = ____.withColumn('ROW_ID', ____ + ____)

# Show the ROW_ID from both DataFrames and compare
____.select('ROW_ID').show()
____
Code bewerken en uitvoeren