Kontrola chybných joinů
Joiny mohou tiše selhat – bez chybové hlášky, ale s poškozenými daty, která obsahují více nebo méně záznamů, než jsi zamýšlel/a. Pojďme se podívat na pár situací, kdy nesprávné spojení tabulek může data znehodnotit.
V tomto příkladu uvidíš, co se stane, když spojíš dva dataframy s klíči různé přesnosti, a porovnáš počty záznamů mezi správným a nesprávným joinem.
Toto cvičení je součástí kurzu
Feature Engineering with PySpark
Pokyny k cvičení
- Vytvoř join mezi
df_orig, tedy dataframem před opravou přesnosti, awalk_df– spoj je podle sloupcůlongitudealatitudev příslušných dataframech. - Spočítej chybějící hodnoty pomocí
where()aisNull()nadf['walkscore']acorrect_join['walkscore']. Všimni si, že chybějících hodnot je hodně, protože datové typy a přesnost se neshodují. - Vytvoř join mezi
dfawalk_df, který páruje záznamy pouze podlelongitude. - Spočítej záznamy pomocí
count()profew_keys_dfacorrect_join_df. Všimni si, že výsledků je výrazně více, protože podmínky párování nejsou dostatečně omezující.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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(____.____()))