Verificare Join errati
Le join possono dare risultati sbagliati senza generare errori, restituendo dati confusi con più o meno record di quanto previsto. Vediamo un paio di modi in cui una join impostata male può peggiorare il tuo insieme di dati.
In questo esempio vedremo cosa succede se unisci due dataframe quando le chiavi di join non hanno la stessa precisione e confronteremo il numero di record tra la join corretta e quella errata.
Questo esercizio fa parte del corso
Feature Engineering con PySpark
Istruzioni dell'esercizio
- Crea una join tra
df_orig, il dataframe prima che la sua precisione fosse corretta, ewalk_dfche corrisponda sulongitudeelatitudenei rispettivi dataframe. - Conta il numero di valori mancanti con
where()eisNull()sudf['walkscore']ecorrect_join['walkscore']. Dovresti notare molti valori mancanti perché i nostri tipi di dato e la precisione non corrispondono. - Crea una join tra
dfewalk_dfche corrisponda solo sulongitude. - Conta il numero di record con
count():few_keys_dfecorrect_join_df. Dovresti notare molti più valori perché non abbiamo vincolato correttamente il matching.
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
# 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(____.____()))