Memeriksa Join yang Buruk
Join dapat bermasalah secara diam-diam jika kita tidak berhati-hati; artinya, tidak akan menimbulkan error tetapi justru mengembalikan data yang berantakan dengan jumlah data lebih banyak atau lebih sedikit daripada yang Anda maksud. Mari kita lihat beberapa cara join yang tidak tepat dapat merusak himpunan data Anda.
Dalam contoh ini, kita akan melihat apa yang terjadi jika Anda menggabungkan dua dataframe ketika kunci join memiliki presisi yang berbeda, lalu membandingkan jumlah rekaman antara join yang benar dan yang salah.
Latihan ini adalah bagian dari kursus
Rekayasa Fitur dengan PySpark
Petunjuk latihan
- Buat join antara
df_orig, dataframe sebelum presisinya dikoreksi, danwalk_dfyang dicocokkan padalongitudedanlatitudedi masing-masing dataframe. - Hitung jumlah nilai hilang dengan
where()isNull()padadf['walkscore']dancorrect_join['walkscore']. Anda akan melihat banyak nilai hilang karena tipe data dan presisi kita tidak cocok. - Buat join antara
dfdanwalk_dfyang hanya mencocokkanlongitude. - Hitung jumlah rekaman dengan
count():few_keys_dfdancorrect_join_df. Anda akan melihat ada jauh lebih banyak nilai karena kita tidak membatasi pencocokan dengan benar.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# 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(____.____()))