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
Oefeninstructies
- Bepaal de hoogste
ROW_IDinvoter_df_marchen sla deze op in de variabeleprevious_max_ID. De expressie.rdd.max()[0]haalt de maximale ID op. - Voeg een kolom
ROW_IDtoe aanvoter_df_aprildie start bij de waardeprevious_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()
____