Mai multe trucuri cu ID-uri
Odată ce definești un proces Spark, vei dori cel mai probabil să îl refolosești de mai multe ori. În funcție de nevoi, poate vrei ca ID-urile să înceapă de la o anumită valoare, pentru a evita suprapunerea cu rulările anterioare ale sarcinii Spark. Acest comportament este similar cu cel al ID-urilor dintr-o bază de date relațională. Ai primit sarcina de a te asigura că ID-urile generate de o sarcină Spark lunară încep de la cea mai mare valoare din luna anterioară.
Sesiunea spark și două DataFrame-uri, voter_df_march și voter_df_april, sunt disponibile în spațiul tău de lucru. Biblioteca pyspark.sql.functions este disponibilă sub aliasul F.
Acest exercițiu face parte din cursul
Curățarea datelor cu PySpark
Instrucțiuni pentru exercițiu
- Determină cel mai mare
ROW_IDdinvoter_df_marchși salvează-l în variabilaprevious_max_ID. Instrucțiunea.rdd.max()[0]îți va returna ID-ul maxim. - Adaugă o coloană
ROW_IDînvoter_df_april, pornind de la valoareaprevious_max_ID+ 1. - Afișează coloanele
ROW_IDdin ambele DataFrame-uri și compară-le.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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()
____