ÎncepețiÎncepe gratuit

Un Join Periculos

În acest exercițiu, vom realiza un join după Latitudine și Longitudine pentru a integra un alt set de date care măsoară cât de prietenoasă pentru pietoni este o anumită zonă. Va trebui să fim atenți ca și coloanele de join să aibă același tip de date și aceeași precizie (număr de zecimale), altfel join-ul nu va funcționa!

Vei observa mai jos că df['latitude'] și df['longitude'] au o precizie mai mare decât walk_df['longitude'] și walk_df['latitude'] — va trebui să le rotunjim la aceeași precizie pentru ca join-ul să funcționeze corect.

Acest exercițiu face parte din cursul

Feature Engineering cu PySpark

Vezi cursul

Instrucțiuni pentru exercițiu

  • Convertește walk_df['latitude'] și walk_df['longitude'] la tipul double folosind cast('double') pe coloană și înlocuind coloana cu withColumn().
  • Rotunjește coloanele în loc cu withColumn() și round('latitude', 5), respectiv round('longitude', 5).
  • Creează condiția de join în care walk_df['latitude'] corespunde cu df['latitude'] și walk_df['longitude'] corespunde cu df['longitude'].
  • Unește df și walk_df cu join(), folosind condiția de mai sus și tipul de join left. Salvează dataframe-ul rezultat ca join_df.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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())
Editează și rulează codul