Pozyskiwanie dodatkowych danych

Inżynieria cech z PySpark

John Hogue

Lead Data Scientist, General Mills

Zewnętrzne zbiory danych

ZALETY

  • Dodaje istotne predyktory
  • Uzupełnia/zastępuje wartości
  • Tanie lub łatwe do pozyskania

Łączenie danych

WADY

  • Może spowalniać analizę
  • Łatwo wprowadzić wyciek danych
  • Wymaga głębokiej znajomości zbioru

Odpowiedzialność

Inżynieria cech z PySpark

O złączeniach

Orientacja w kierunkach danych

  • Lewy; wyjściowy zbiór danych
  • Prawy; nowy zbiór do dołączenia

Złączenia SQL

Inżynieria cech z PySpark

Złączenia ramek danych w PySpark

DataFrame.join(

other, # Other DataFrame to merge
on=None, # The keys to join on
how=None) # Type of join to perform (default is 'inner')
Inżynieria cech z PySpark

Przykład złączenia w 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
Inżynieria cech z PySpark

Złączenie SparkSQL

  • Zastosuj SQL do ramki danych
# 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
                   """)
Inżynieria cech z PySpark

Czas na złączenie danych!

Inżynieria cech z PySpark

Preparing Video For Download...