Перевірка некоректних зʼєднань
Зʼєднання можуть «ламатися» непомітно, якщо не бути уважними: замість помилки ви отримаєте спотворені дані — більше або менше записів, ніж очікували. Розгляньмо кілька способів, як неправильне зʼєднання може погіршити ваш набір даних.
У цьому прикладі ми подивимося, що станеться, якщо зʼєднати два датафрейми, коли ключі зʼєднання мають різну точність, і порівняємо кількість записів між правильним і неправильним зʼєднанням.
Ця вправа є частиною курсу
Опрацювання ознак у PySpark
Інструкції до вправи
- Створіть зʼєднання між
df_orig— датафреймом до виправлення точності — таwalk_df, що зіставляєlongitudeіlatitudeу відповідних датафреймах. - Порахуйте кількість пропущених значень за допомогою
where()іisNull()дляdf['walkscore']іcorrect_join['walkscore']. Ви маєте помітити багато пропусків, адже типи даних і точність не збігаються. - Створіть зʼєднання між
dfіwalk_df, яке зіставляє лишеlongitude. - Порахуйте кількість записів за допомогою
count()дляfew_keys_dfіcorrect_join_df. Ви маєте побачити значно більше значень, оскільки ми некоректно обмежили умови зіставлення.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# 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(____.____()))