Bắt đầu ngayBắt đầu miễn phí

Kiểm tra các phép Join lỗi

Nếu không cẩn thận, các phép join có thể âm thầm gây lỗi: chúng không báo lỗi mà trả về dữ liệu bị lệch, nhiều hơn hoặc ít hơn so với dự định. Hãy xem một vài cách mà việc join sai có thể làm hỏng tập dữ liệu của bạn.

Trong ví dụ này, chúng ta sẽ xem điều gì xảy ra khi bạn join hai dataframe mà khóa join không có cùng độ chính xác, và so sánh số lượng bản ghi giữa phép join đúng và phép join sai.

Bài tập này là một phần của khóa học

Feature Engineering với PySpark

Xem khóa học

Hướng dẫn bài tập

  • Tạo một phép join giữa df_orig (dataframe trước khi được sửa độ chính xác) và walk_df sao cho khớp theo longitudelatitude ở mỗi dataframe tương ứng.
  • Đếm số lượng giá trị thiếu bằng where() isNull() trên df['walkscore']correct_join['walkscore']. Bạn sẽ thấy có rất nhiều giá trị thiếu vì kiểu dữ liệu và độ chính xác không khớp.
  • Tạo một phép join giữa dfwalk_df chỉ khớp theo longitude.
  • Đếm số lượng bản ghi với count(): few_keys_dfcorrect_join_df. Bạn sẽ thấy số lượng lớn hơn nhiều vì chúng ta chưa ràng buộc điều kiện khớp một cách chính xác.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

# 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(____.____()))
Chỉnh sửa và Chạy Mã