Отримуємо більше даних

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

John Hogue

Lead Data Scientist, General Mills

Думки про зовнішні набори даних

ПЕРЕВАГИ

  • Додайте важливі предиктори
  • Доповніть/замініть значення
  • Дешево або легко отримати

Об'єднання даних

НЕДОЛІКИ

  • Може «гальмувати» аналіз
  • Легко спричинити витік даних
  • Потрібно стати експертом з предметної області набору даних

Відповідальність

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

Про з'єднання

Орієнтуємо напрями даних

  • Ліворуч — наш початковий набір даних
  • Праворуч — новий набір для включення

З'єднання SQL

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

З'єднання DataFrame у PySpark

DataFrame.join(

other, # Інший DataFrame для злиття
on=None, # Ключі для з'єднання
how=None) # Тип з'єднання (типово 'inner')
Опрацювання ознак у PySpark

Приклад з'єднання в PySpark

# Inspect dataframe head
hdf.show(2)
+----------+--------------------+
|        dt|                  nm|
+----------+--------------------+
|2012-01-02|        New Year Day|
|2012-01-16|Martin Luther Kin...|
+----------+--------------------+
only showing top 2 rows
# Specify join conditon
cond = [df['OFFMARKETDATE'] == hdf['dt']]

# Join two hdf onto df df = df.join(hdf, on=cond, 'left')
# How many sales occurred on bank holidays? df.where(~df['nm'].isNull()).count()
0
Опрацювання ознак у PySpark

З'єднання у SparkSQL

  • Застосуйте SQL до свого датафрейму
# Register the dataframe as a temp table
df.createOrReplaceTempView("df")
hdf.createOrReplaceTempView("hdf")
# Write a SQL Statement
sql_df = spark.sql("""
                      SELECT 
                        *
                      FROM df
                      LEFT JOIN hdf
                      ON df.OFFMARKETDATE = hdf.dt
                   """)
Опрацювання ознак у PySpark

З'єднаємо трохи даних!

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

Preparing Video For Download...