Zacznij terazZacznij za darmo

Wykrywanie błędnych złączeń

Złączenia mogą cicho zawodzić – nie zgłaszają błędu, ale zwracają zniekształcone dane z większą lub mniejszą liczbą rekordów, niż oczekiwano. Przyjrzyjmy się kilku sytuacjom, w których nieprawidłowe złączenie psuje zbiór danych.

W tym ćwiczeniu sprawdzisz, co się dzieje, gdy łączysz dwie ramki danych o różnej precyzji kluczy złączenia, i porównasz liczbę rekordów w poprawnym oraz niepoprawnym złączeniu.

To ćwiczenie jest częścią kursu

Inżynieria cech z PySpark

Zobacz kurs

Instrukcje do ćwiczenia

  • Utwórz złączenie między df_orig – ramką danych przed korektą precyzji – a walk_df, dopasowując rekordy po kolumnach longitude i latitude w odpowiednich ramkach.
  • Zlicz brakujące wartości za pomocą where() i isNull() na df['walkscore'] oraz correct_join['walkscore']. Zauważysz wiele brakujących wartości, ponieważ typy danych i precyzja nie są zgodne.
  • Utwórz złączenie między df a walk_df, dopasowując rekordy wyłącznie po kolumnie longitude.
  • Zlicz rekordy za pomocą count() dla few_keys_df i correct_join_df. Zauważysz znacznie więcej rekordów, ponieważ warunek dopasowania nie jest wystarczająco ograniczający.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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(____.____()))
Edytuj i uruchom kod