Obtener más datos

Ingeniería de características con PySpark

John Hogue

Lead Data Scientist, General Mills

Ideas sobre datasets externos

VENTAJAS

  • Añadir predictores clave
  • Rellenar/reemplazar valores
  • Baratos o fáciles de obtener

Combinación de datos

CONTRAS

  • Pueden frenar el análisis
  • Fácil provocar fuga de datos
  • Te vuelves experto del dataset

Responsabilidad

Ingeniería de características con PySpark

Sobre los joins

Orientar nuestras uniones

  • Izquierda: dataset inicial
  • Derecha: nuevo dataset a incorporar

Joins SQL

Ingeniería de características con PySpark

Joins de DataFrame en PySpark

DataFrame.join(

other, # Otro DataFrame a unir
on=None, # Claves para el join
how=None) # Tipo de join (por defecto 'inner')
Ingeniería de características con PySpark

Ejemplo de join en PySpark

# Inspeccionar las primeras filas
hdf.show(2)
+----------+--------------------+
|        dt|                  nm|
+----------+--------------------+
|2012-01-02|        New Year Day|
|2012-01-16|Martin Luther Kin...|
+----------+--------------------+
only showing top 2 rows
# Especificar la condición de join
cond = [df['OFFMARKETDATE'] == hdf['dt']]

# Unir hdf con df df = df.join(hdf, on=cond, 'left')
# ¿Cuántas ventas hubo en festivos bancarios? df.where(~df['nm'].isNull()).count()
0
Ingeniería de características con PySpark

Join en SparkSQL

  • Aplica SQL a tu dataframe
# Registrar el dataframe como tabla temporal
df.createOrReplaceTempView("df")
hdf.createOrReplaceTempView("hdf")
# Escribir una consulta SQL
sql_df = spark.sql("""
                      SELECT 
                        *
                      FROM df
                      LEFT JOIN hdf
                      ON df.OFFMARKETDATE = hdf.dt
                   """)
Ingeniería de características con PySpark

¡Unamos algunos datos!

Ingeniería de características con PySpark

Preparing Video For Download...