Fler ID-knep
När du väl har definierat en Spark-process vill du troligtvis återanvända den många gånger. Beroende på dina behov kan du vilja att dina ID:n börjar på ett visst värde för att undvika överlapp med tidigare körningar av Spark-uppgiften. Det liknar hur ID:n fungerar i en relationsdatabas. Din uppgift är att se till att ID:na från en månatlig Spark-uppgift börjar på det högsta värdet från föregående månad.
Sessionen spark och två DataFrames, voter_df_march och voter_df_april, finns tillgängliga i din miljö. Biblioteket pyspark.sql.functions är importerat under aliaset F.
Den här övningen är en del av kursen
Datarensning med PySpark
Övningsinstruktioner
- Bestäm det högsta
ROW_ID-värdet ivoter_df_marchoch spara det i variabelnprevious_max_ID. Uttrycket.rdd.max()[0]hämtar det högsta ID:t. - Lägg till en
ROW_ID-kolumn ivoter_df_aprilsom börjar på värdetprevious_max_ID+ 1. - Visa
ROW_ID-värdena från båda DataFrame-objekten och jämför dem.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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()
____