Inizia subitoInizia gratis

Un join pericoloso

In questo esercizio effettueremo un join su latitudine e longitudine per aggiungere un altro insieme di dati che misura quanto un quartiere sia adatto a essere girato a piedi. Dovremo fare attenzione a garantire che le colonne di join abbiano lo stesso tipo di dato e che stiamo usando la stessa precisione (numero di cifre dopo la virgola), altrimenti il join non funzionerà!

Qui sotto noterai che df['latitude'] e df['longitude'] hanno una precisione maggiore rispetto a walk_df['longitude'] e walk_df['latitude']: dovremo arrotondarle alla stessa precisione perché il join funzioni correttamente.

Questo esercizio fa parte del corso

Feature Engineering con PySpark

Visualizza corso

Istruzioni dell'esercizio

  • Converti walk_df['latitude'] e walk_df['longitude'] al tipo double usando cast('double') sulla colonna e sostituendo la colonna in place con withColumn().
  • Arrotonda le colonne in place con withColumn() e round('latitude', 5) e round('longitude', 5).
  • Crea la condizione di join in cui walk_df['latitude'] corrisponde a df['latitude'] e walk_df['longitude'] corrisponde a df['longitude'].
  • Esegui il join tra df e walk_df con join(), usando la condizione sopra e il tipo di join left. Salva il dataframe risultante come join_df.

esercizio interattivo pratico

Prova questo esercizio completando questo codice di esempio.

# Cast data types
walk_df = ____.withColumn('longitude', ____.cast('double'))
walk_df = ____.withColumn(____, ____.cast('double'))

# Round precision
df = df.withColumn('longitude', round(____, 5))
df = df.withColumn(____, round(____, 5))

# Create join condition
condition = [____ == ____, ____ == ____]

# Join the dataframes together
join_df = ____.join(____, on=____, how=____)
# Count non-null records from new field
print(join_df.where(~join_df['walkscore'].isNull()).count())
Modifica ed esegui il codice