Kontrollera felaktiga join-operationer
Join-operationer kan misslyckas utan att ge felmeddelanden – de returnerar i stället förvrängd data med fler eller färre rader än du avsett. Låt oss titta på ett par sätt som felaktiga join-operationer kan försämra din datamängd.
I det här exemplet undersöker vi vad som händer när du slår samman två dataramar vars join-nycklar har olika precision, och jämför antalet poster mellan den korrekta och den felaktiga join-operationen.
Den här övningen är en del av kursen
Feature Engineering med PySpark
Övningsinstruktioner
- Skapa en join mellan
df_orig, dataramen innan dess precision korrigerades, ochwalk_df, som matchar pålongitudeochlatitudei respektive dataramar. - Räkna antalet saknade värden med
where()ochisNull()pådf['walkscore']ochcorrect_join['walkscore']. Du bör lägga märke till att det finns många saknade värden eftersom datatyperna och precisionen inte stämmer överens. - Skapa en join mellan
dfochwalk_dfsom bara matchar pålongitude. - Räkna antalet poster med
count():few_keys_dfochcorrect_join_df. Du bör notera att det finns betydligt fler värden eftersom vi inte har begränsat matchningen tillräckligt.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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(____.____()))