Identificarea join-urilor incorecte
Join-urile pot produce erori silențioase dacă nu suntem atenți – adică nu generează mesaje de eroare, ci returnează date distorsionate, cu mai multe sau mai puține înregistrări decât ai intenționat. Să analizăm câteva situații în care un join incorect îți poate deteriora setul de date.
În acest exemplu vom vedea ce se întâmplă atunci când unești două dataframe-uri ale căror chei de join nu au aceeași precizie, comparând numărul de înregistrări dintre join-ul corect și cel incorect.
Acest exercițiu face parte din cursul
Feature Engineering cu PySpark
Instrucțiuni pentru exercițiu
- Creează un join între
df_orig, dataframe-ul înainte ca precizia sa să fie corectată, șiwalk_df, care se potrivește dupălongitudeșilatitudeîn dataframe-urile respective. - Numără valorile lipsă folosind
where()șiisNull()pedf['walkscore']șicorrect_join['walkscore']. Ar trebui să observi că există multe valori lipsă, deoarece tipurile de date și precizia nu corespund. - Creează un join între
dfșiwalk_dfcare se potrivește doar dupălongitude. - Numără înregistrările folosind
count():few_keys_dfșicorrect_join_df. Ar trebui să observi că există mult mai multe valori, deoarece criteriile de potrivire nu sunt suficient de restrictive.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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(____.____()))