さらにデータを取得

PySparkで学ぶ特徴量エンジニアリング

John Hogue

Lead Data Scientist, General Mills

外部データセットの考え方

長所

  • 重要な予測変数を追加
  • 値を補完・置換
  • 取得が安価または容易

データの統合

短所

  • 解析を重くする可能性
  • データ漏洩を招きやすい
  • データセットの領域知識が必要に

責任

PySparkで学ぶ特徴量エンジニアリング

結合について

結合方向の確認

  • 左:開始データセット
  • 右:取り込む新データセット

SQLの結合

PySparkで学ぶ特徴量エンジニアリング

PySparkのDataFrame結合

DataFrame.join(

other, # 結合するもう一方のDataFrame
on=None, # 結合キー
how=None) # 結合タイプ(既定は 'inner')
PySparkで学ぶ特徴量エンジニアリング

PySpark 結合の例

# 先頭を確認
hdf.show(2)
+----------+--------------------+
|        dt|                  nm|
+----------+--------------------+
|2012-01-02|        New Year Day|
|2012-01-16|Martin Luther Kin...|
+----------+--------------------+
only showing top 2 rows
# 結合条件を指定
cond = [df['OFFMARKETDATE'] == hdf['dt']]

# hdfをdfに結合(左結合) df = df.join(hdf, on=cond, 'left')
# 祝日に発生した売上はいくつ? df.where(~df['nm'].isNull()).count()
0
PySparkで学ぶ特徴量エンジニアリング

SparkSQLの結合

  • データフレームにSQLを適用
# データフレームを一時テーブルとして登録
df.createOrReplaceTempView("df")
hdf.createOrReplaceTempView("hdf")
# SQL文を作成
sql_df = spark.sql("""
                      SELECT 
                        *
                      FROM df
                      LEFT JOIN hdf
                      ON df.OFFMARKETDATE = hdf.dt
                   """)
PySparkで学ぶ特徴量エンジニアリング

データを結合しよう

PySparkで学ぶ特徴量エンジニアリング

Preparing Video For Download...