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

Небезпечне зʼєднання

У цій вправі ми зʼєднуватимемо за широтою та довготою, щоб додати інший набір даних, який вимірює зручність пішого руху в районі. Потрібно бути уважними: стовпці для зʼєднання мають бути одного типу даних, а також мати однакову точність (кількість цифр після коми), інакше зʼєднання не спрацює!

Нижче ви побачите, що df['latitude'] і df['longitude'] мають вищу точність, ніж walk_df['longitude'] і walk_df['latitude']. Потрібно округлити їх до однакової точності, щоб зʼєднання відбулося коректно.

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

Опрацювання ознак у PySpark

Переглянути курс

Інструкції до вправи

  • Перетворіть walk_df['latitude'] і walk_df['longitude'] на тип double, застосувавши до стовпця cast('double') і замінивши стовпець на місці за допомогою withColumn().
  • Округліть стовпці на місці за допомогою withColumn() і викликів round('latitude', 5) та round('longitude', 5).
  • Створіть умову зʼєднання: відповідність walk_df['latitude'] до df['latitude'] та walk_df['longitude'] до df['longitude'].
  • Зʼєднайте df і walk_df за допомогою join(), використовуючи умову вище та тип зʼєднання left. Збережіть результат у датафреймі join_df.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

# Cast data types
walk_df = ____.withColumn('longitude', ____.cast('double'))
walk_df = ____.withColumn(____, ____.cast('double'))

# Round precision
df = df.withColumn('longitude', round(____, 5))
df = df.withColumn(____, round(____, 5))

# Create join condition
condition = [____ == ____, ____ == ____]

# Join the dataframes together
join_df = ____.join(____, on=____, how=____)
# Count non-null records from new field
print(join_df.where(~join_df['walkscore'].isNull()).count())
Редагувати та запускати код