ПочатиПочніть безкоштовно

Перевірка некоректних зʼєднань

Зʼєднання можуть «ламатися» непомітно, якщо не бути уважними: замість помилки ви отримаєте спотворені дані — більше або менше записів, ніж очікували. Розгляньмо кілька способів, як неправильне зʼєднання може погіршити ваш набір даних.

У цьому прикладі ми подивимося, що станеться, якщо зʼєднати два датафрейми, коли ключі зʼєднання мають різну точність, і порівняємо кількість записів між правильним і неправильним зʼєднанням.

Ця вправа є частиною курсу

Опрацювання ознак у 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(____.____()))
Редагувати та запускати код