CommencerCommencer gratuitement

Encore plus d’astuces sur les identifiants

Une fois que vous avez défini un processus Spark, vous voudrez probablement le réutiliser souvent. Selon vos besoins, vous pouvez souhaiter démarrer vos identifiants à une certaine valeur pour éviter tout chevauchement avec les exécutions précédentes de la tâche Spark. Ce comportement est similaire à celui des identifiants dans une base de données relationnelle. Votre mission est de faire en sorte que les identifiants produits par une tâche Spark mensuelle commencent à la valeur la plus élevée du mois précédent.

La session spark et deux DataFrames, voter_df_march et voter_df_april, sont disponibles dans votre espace de travail. La bibliothèque pyspark.sql.functions est disponible sous l’alias F.

Cet exercice fait partie du cours

Nettoyer des données avec PySpark

Afficher le cours

Instructions

  • Déterminez la valeur maximale de ROW_ID dans voter_df_march et enregistrez-la dans la variable previous_max_ID. L’instruction .rdd.max()[0] permet d’obtenir l’identifiant maximum.
  • Ajoutez une colonne ROW_ID à voter_df_april en commençant à la valeur previous_max_ID + 1.
  • Affichez les ROW_ID des deux DataFrames et comparez.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

# 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()
____
Modifier et exécuter le code