Détecter les mauvaises jointures
Les jointures peuvent mal tourner sans qu'on s'en rende compte si l'on n'y prend pas garde : elles ne lèveront pas d'erreur, mais renverront plutôt des données déformées, avec plus ou moins d'observations que prévu. Voyons quelques façons dont une jointure incorrecte peut détériorer votre ensemble de données.
Dans cet exemple, nous verrons ce qui se produit si vous joignez deux DataFrames lorsque les clés de jointure n'ont pas la même précision, puis nous comparerons le nombre d'enregistrements entre la bonne jointure et la mauvaise.
Cette activité fait partie du cours
Ingénierie des caractéristiques avec PySpark
Instructions de l’exercice
- Créez une jointure entre
df_orig, le DataFrame avant la correction de sa précision, etwalk_dfqui fait correspondrelongitudeetlatitudedans les DataFrames respectifs. - Comptez le nombre de valeurs manquantes avec
where()etisNull()surdf['walkscore']etcorrect_join['walkscore']. Vous devriez constater de nombreuses valeurs manquantes parce que nos types de données et notre précision ne concordent pas. - Créez une jointure entre
dfetwalk_dfqui ne fait correspondre quelongitude. - Comptez le nombre d'enregistrements avec
count()pourfew_keys_dfetcorrect_join_df. Vous devriez remarquer qu'il y en a beaucoup plus, car nous n'avons pas correctement restreint notre appariement.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# Join on mismatched keys precision
wrong_prec_cond = [____ == ____, ____ == ____]
wrong_prec_df = ____.join(____, on=wrong_prec_cond, how='left')
# Compare bad join to the correct one
print(wrong_prec_df.____(____.____()).count())
print(correct_join_df.____(____.____).count())
# Create a join on too few keys
few_keys_cond = [____ == ____]
few_keys_df = ____.join(____, on=few_keys_cond, how='left')
# Compare bad join to the correct one
print("Record Count of the Too Few Keys Join Example: " + str(____.____()))
print("Record Count of the Correct Join Example: " + str(____.____()))