Mehr Daten bekommen

Feature Engineering mit PySpark

John Hogue

Lead Data Scientist, General Mills

Gedanken zu externen Datensätzen

VORTEILE

  • Wichtige Prädiktoren hinzufügen
  • Werte ergänzen/ersetzen
  • Günstig oder leicht zu beschaffen

Daten zusammenführen

NACHTEILE

  • Kann die Analyse „ausbremsen"
  • Datenleckage schnell verursacht
  • Werde Fachperson für den Datensatz

Verantwortung

Feature Engineering mit PySpark

Über Joins

Unsere Datenausrichtung

  • Links: unser Ausgangsdatensatz
  • Rechts: neuer Datensatz zum Einbinden

SQL-Joins

Feature Engineering mit PySpark

PySpark DataFrame-Joins

DataFrame.join(

other, # Anderer DataFrame zum Mergen
on=None, # Schlüssel für den Join
how=None) # Art des Joins (Standard: 'inner')
Feature Engineering mit PySpark

PySpark-Join-Beispiel

# Kopf des DataFrames prüfen
hdf.show(2)
+----------+--------------------+
|        dt|                  nm|
+----------+--------------------+
|2012-01-02|        New Year Day|
|2012-01-16|Martin Luther Kin...|
+----------+--------------------+
only showing top 2 rows
# Join-Bedingung festlegen
cond = [df['OFFMARKETDATE'] == hdf['dt']]

# hdf per Left-Join an df anfügen df = df.join(hdf, on=cond, 'left')
# Wie viele Verkäufe fielen auf Bankfeiertage? df.where(~df['nm'].isNull()).count()
0
Feature Engineering mit PySpark

SparkSQL-Join

  • Wende SQL auf deinen DataFrame an
# DataFrames als temporäre Tabellen registrieren
df.createOrReplaceTempView("df")
hdf.createOrReplaceTempView("hdf")
# Eine SQL-Anweisung schreiben
sql_df = spark.sql("""
                      SELECT 
                        *
                      FROM df
                      LEFT JOIN hdf
                      ON df.OFFMARKETDATE = hdf.dt
                   """)
Feature Engineering mit PySpark

Lass uns Daten joinen!

Feature Engineering mit PySpark

Preparing Video For Download...