Aan de slagBegin gratis

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

Bekijk cursus

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.

Interactieve oefening met praktijkervaring

Probeer deze oefening door deze voorbeeldcode aan 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