การ Join โดยใช้ส่วนประกอบของวันที่
บ่อยครั้งที่เราจะใช้ส่วนประกอบของวันที่เพื่อ join ข้อมูลจากชุดอื่น ในตัวอย่างนี้ เราต้องใช้ข้อมูลที่มีอยู่ก่อนหน้าช่วงเวลาที่ผู้ซื้อกำลังพิจารณาซื้อบ้าน ซึ่งหมายความว่าต้องใช้ข้อมูลรายงานของปีก่อนหน้าในการวิเคราะห์
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Feature Engineering with PySpark
คำแนะนำการฝึกหัด
- ดึงปีออกจาก
LISTDATEโดยใช้year()แล้วเก็บไว้ในคอลัมน์ใหม่ชื่อlist_yearด้วยwithColumn() - สร้างคอลัมน์ใหม่อีกคอลัมน์ชื่อ
report_yearโดยลบ 1 จากlist_year - สร้างเงื่อนไขการ join ที่จับคู่
df['CITY']กับprice_df['City']และdf['report_year']กับprice_df['Year'] - ทำการ left join ระหว่าง
dfกับprice_df
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
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()