Začněte nyníZačněte zdarma

Nebezpečný join

V tomto cvičení budeme joinovat podle zeměpisné šířky a délky, abychom přidali další dataset měřící, jak je daná čtvrť přívětivá pro pěší. Musíme si dát pozor na to, aby joinované sloupce měly stejný datový typ a stejnou přesnost (počet desetinných míst) – jinak join nebude fungovat!

Níže zjistíš, že df['latitude'] a df['longitude'] mají vyšší přesnost než walk_df['longitude'] a walk_df['latitude']. Budeme je muset zaokrouhlit na stejný počet desetinných míst, aby join proběhl správně.

Toto cvičení je součástí kurzu

Feature Engineering with PySpark

Zobrazit kurz

Pokyny k cvičení

  • Převeď walk_df['latitude'] a walk_df['longitude'] na typ double pomocí cast('double') a nahraď sloupce na místě pomocí withColumn().
  • Zaokrouhli sloupce na místě pomocí withColumn() a funkcí round('latitude', 5) a round('longitude', 5).
  • Vytvoř podmínku joinu tak, aby walk_df['latitude'] odpovídal df['latitude'] a walk_df['longitude'] odpovídal df['longitude'].
  • Spoj df a walk_df pomocí join() s výše uvedenou podmínkou a typem joinu left. Výsledný dataframe ulož jako join_df.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# 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())
Upravit a spustit kód