Hatalı Join’leri Kontrol Etme
Dikkatli olmazsak join’ler sessizce bozulabilir; yani hata vermezler ama beklediğinden daha az ya da daha çok, hatta karışmış veri döndürebilirler. Yanlış join’in veri kümeni nasıl kötü etkileyebileceğine dair birkaç örneğe bakalım.
Bu örnekte, join anahtarlarının hassasiyetleri (precision) aynı değilken iki dataframe’i birleştirirsen ne olduğuna bakacağız ve doğru join ile yanlış join arasındaki kayıt sayılarını karşılaştıracağız.
Bu egzersiz, kursun bir parçasıdır
PySpark ile Özellik Mühendisliği
Egzersiz talimatları
- Hassasiyeti düzeltilmeden önceki dataframe olan
df_origilewalk_dfarasında, ilgili dataframelerdekilongitudevelatitudesütunlarına göre eşleşen bir join oluştur. df['walkscore']vecorrect_join['walkscore']üzerindewhere()isNull()kullanarak kaç tane eksik değer olduğunu say. Veri tiplerimiz ve hassasiyetlerimiz uyuşmadığı için çok sayıda eksik değer olduğunu fark etmelisin.- Yalnızca
longitudeüzerine eşleşecek şekildedfilewalk_dfarasında bir join oluştur. few_keys_dfvecorrect_join_dfiçincount()ile kayıt sayılarını say. Eşleşmeyi doğru şekilde kısıtlamadığımız için çok daha fazla değer olduğunu fark etmelisin.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
# 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(____.____()))