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

Window function को dot notation से SQL में बदलें

हम ट्रेन शेड्यूल में एक कॉलम जोड़ने जा रहे हैं ताकि प्रत्येक पंक्ति में यह बताया जा सके कि ट्रेन को अपने अगले स्टेशन तक पहुँचने में कितने मिनट लगेंगे.

  • हमारे पास एक dataframe df है जहाँ df.columns == ['train_id', 'station', 'time'].
  • df को schedule नाम की SQL table के रूप में रजिस्टर किया गया है.
  • नीचे दिया गया window function क्वेरी dot notation का उपयोग करता है. यह एक नया dataframe dot_df देता है.
window = Window.partitionBy('train_id').orderBy('time')
dot_df = df.withColumn('diff_min', 
                    (unix_timestamp(lead('time', 1).over(window),'H:m') 
                     - unix_timestamp('time', 'H:m'))/60)

ध्यान दें कि यहाँ unix_timestamp फंक्शन का उपयोग किया गया है, जो UNIX_TIMESTAMP SQL फंक्शन के समतुल्य है.

कृपया नमूना कोड में दी गई स्कैफोल्डिंग पर ध्यान दें. स्कैफोल्डिंग के अनुसार उत्तर को फॉर्मैट करने से आपका सबमिट किया गया उत्तर फ़ॉर्मैटिंग समस्या के कारण गलत तरीके से अस्वीकार नहीं होगा.

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

Python में Spark SQL परिचय

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

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

  • dot_df जैसा ही परिणाम प्राप्त करने के लिए एक SQL क्वेरी बनाएँ. कृपया क्वेरी को स्कैफोल्डिंग के अनुसार फॉर्मैट करें (अर्थात्, placeholder underscores _____).

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

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

# Create a SQL query to obtain an identical result to dot_df
query = """
SELECT *, 
(____(____(time, 1) ____ (____ BY train_id ____ BY time),'H:m') 
 - ____(time, 'H:m'))/60 AS diff_min 
FROM schedule 
"""
sql_df = spark.sql(query)
sql_df.show()
कोड संपादित करें और चलाएँ