Joindre sur des composantes temporelles
Il est courant d’utiliser des composantes de date pour joindre d’autres sources d’informations. Toutefois, dans cet exemple, nous devons nous baser sur les données qui auraient été disponibles pour des personnes envisageant d’acheter une maison. Autrement dit, nous allons utiliser, pour notre analyse, les données de reporting de l’année précédente.
Cet exercice fait partie du cours
<cours>Feature Engineering avec PySpark</cours>Instructions de l’exercice
- Extrayez l’année de
LISTDATEavecyear()et placez-la dans une nouvelle colonne appeléelist_yearavecwithColumn() - Créez une autre colonne,
report_year, en soustrayant 1 àlist_year - Créez une condition de jointure qui fait correspondre
df['CITY']avecprice_df['City']etdf['report_year']avecprice_df['Year'] - Effectuez une jointure gauche entre
dfetprice_df
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
from pyspark.sql.functions import year
# Initialize dataframes
df = real_estate_df
price_df = median_prices_df
# Create year column
df = df.____(____, ____(____))
# Adjust year to match
df = df.withColumn(____, (df[____] - 1))
# Create join condition
condition = [df[____] == price_df[____], df[____] == price_df[____]]
# Join the dataframes together
df = ____.join(____, on=condition, how=____)
# Inspect that new columns are available
df[['MedianHomeValue']].show()