शुरू करेंमुफ़्त में शुरू करें

एक खतरनाक Join

इस अभ्यास में, हम Latitude और Longitude पर join करके एक और डेटासेट लाएँगे जो किसी मोहल्ले की walk-friendly होने की माप देता है। आपको सावधान रहना होगा कि जिन कॉलम्स पर join कर रहे हैं, उनका data type एक जैसा हो और precision (दशमलव के बाद अंकों की संख्या) भी बराबर हो, नहीं तो join काम नहीं करेगा!

नीचे आप देखेंगे कि df['latitude'] और df['longitude'] की precision, walk_df['longitude'] और walk_df['latitude'] से ज़्यादा है। हमें join को सही से चलाने के लिए इन्हें एक ही precision पर round करना होगा।

यह अभ्यास पाठ्यक्रम का हिस्सा है

PySpark के साथ Feature Engineering

पाठ्यक्रम देखें

अभ्यास निर्देश

  • walk_df['latitude'] और walk_df['longitude'] को cast('double') लगाकर double टाइप में बदलें, और withColumn() से कॉलम को उसी जगह रिप्लेस करें।
  • withColumn() के साथ कॉलम्स को जगह पर ही round करें: round('latitude', 5) और round('longitude', 5)
  • Join की शर्त बनाएँ जिसमें walk_df['latitude'] का मैच df['latitude'] से हो और walk_df['longitude'] का मैच df['longitude'] से हो।
  • ऊपर दी गई शर्त और left join टाइप का उपयोग करते हुए df और walk_df को join() से जोड़ें। जुड़े हुए dataframe को join_df नाम से सेव करें।

इंटरैक्टिव व्यावहारिक अभ्यास

इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।

# 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())
कोड संपादित करें और चलाएँ