取得更多資料

使用 PySpark 進行特徵工程

John Hogue

Lead Data Scientist, General Mills

對外部資料集的看法

優點

  • 新增關鍵預測因子
  • 補充/取代數值
  • 取得便宜或容易

合併資料

缺點

  • 可能拖慢分析
  • 容易造成資料外洩
  • 需要成為資料集領域專家

責任

使用 PySpark 進行特徵工程

關於 Join

釐清資料方向

  • 左:起始資料集
  • 右:要併入的新資料集

SQL 連接

使用 PySpark 進行特徵工程

PySpark DataFrame Join

DataFrame.join(

other, # Other DataFrame to merge
on=None, # The keys to join on
how=None) # Type of join to perform (default is 'inner')
使用 PySpark 進行特徵工程

PySpark Join 範例

# 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 Join

  • 對你的 DataFrame 使用 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...