Ottenere più dati

Feature Engineering con PySpark

John Hogue

Lead Data Scientist, General Mills

Considerazioni sui dataset esterni

PRO

  • Aggiungi predittori importanti
  • Integra/sostituisci valori
  • Economici o facili da ottenere

Unire i dati

CONTRO

  • Può rallentare l'analisi
  • Facile causare data leakage
  • Diventare esperti del dataset

Responsabilità

Feature Engineering con PySpark

Informazioni sui join

Orientare i nostri dati

  • Sinistra: dataset di partenza
  • Destra: nuovo dataset da integrare

Join SQL

Feature Engineering con PySpark

Join con DataFrame PySpark

DataFrame.join(

other, # Altro DataFrame da unire
on=None, # Chiavi di join
how=None) # Tipo di join (predefinito: 'inner')
Feature Engineering con PySpark

Esempio di join in 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
Feature Engineering con PySpark

Join in SparkSQL

  • Applica SQL al tuo dataframe
# 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
                   """)
Feature Engineering con PySpark

Uniamo un po' di dati!

Feature Engineering con PySpark

Preparing Video For Download...