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

अपने डेटा में थोड़ा Spark डालें

पिछले अभ्यास में, आपने देखा कि डेटा को Spark से pandas में कैसे ले जाया जाता है। लेकिन कई बार आपको उल्टा करना होता है — यानी pandas DataFrame को Spark क्लस्टर में भेजना! SparkSession क्लास में इसके लिए भी एक मेथड होता है.

.createDataFrame() मेथड एक pandas DataFrame लेता है और एक Spark DataFrame लौटाता है.

इस मेथड का आउटपुट लोकली स्टोर होता है, SparkSession कैटलॉग में नहीं। इसका मतलब है कि आप उस पर Spark DataFrame के सारे मेथड चला सकते हैं, लेकिन दूसरे कॉन्टेक्स्ट में इस डेटा तक पहुँच नहीं पाएँगे.

उदाहरण के लिए, अगर आप अपनी DataFrame को रेफरेंस करती हुई कोई SQL क्वेरी (.sql() मेथड के ज़रिए) चलाएँगे, तो वह एरर देगी। इस तरह से डेटा एक्सेस करने के लिए, आपको इसे एक अस्थायी टेबल (temporary table) के रूप में सेव करना होगा.

आप यह .createTempView() Spark DataFrame मेथड से कर सकते हैं, जो केवल एक आर्ग्युमेंट लेता है — उस temporary table का नाम जिसे आप रजिस्टर करना चाहते हैं। यह मेथड DataFrame को कैटलॉग में टेबल के रूप में रजिस्टर करता है, लेकिन चूँकि यह टेबल अस्थायी है, इसे सिर्फ उसी SparkSession से एक्सेस किया जा सकता है जिसने Spark DataFrame बनाया था.

एक और मेथड है .createOrReplaceTempView()। यह सुरक्षित रूप से नई temporary table बना देता है अगर पहले कुछ नहीं था, या अगर पहले से कोई टेबल परिभाषित है तो उसे अपडेट कर देता है। डुप्लिकेट टेबल की समस्या से बचने के लिए आप इसी मेथड का उपयोग करेंगे.

डायग्राम देखें ताकि आपको समझ आए कि आपकी Spark डेटा स्ट्रक्चर आपस में किस तरह इंटरैक्ट करते हैं.

आपके वर्कस्पेस में पहले से spark नाम का SparkSession मौजूद है, और numpy को np तथा pandas को pd के रूप में इम्पोर्ट किया गया है.

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

PySpark की नींव

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

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

  • रैंडम नंबरों का pandas DataFrame बनाने का कोड पहले से दिया गया है और pd_temp के रूप में सेव है.
  • Spark मेथड .createDataFrame() को pd_temp आर्ग्युमेंट के साथ कॉल करके spark_temp नाम का एक Spark DataFrame बनाएँ.
  • अपने Spark क्लस्टर में टेबल्स की सूची जाँचें और पक्का करें कि नया DataFrame वहाँ मौजूद नहीं है। इसके लिए आप spark.catalog.listTables() का उपयोग कर सकते हैं.
  • अभी बनाए गए spark_temp DataFrame को .createOrReplaceTempView() मेथड से एक temporary table के रूप में रजिस्टर करें। temporary table का नाम "temp" होना चाहिए। ध्यान रखें, टेबल का नाम इसी मेथड के एकमात्र आर्ग्युमेंट के रूप में सेट किया जाता है!
  • टेबल्स की सूची दोबारा जाँचें.

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

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

# Create pd_temp
pd_temp = pd.DataFrame(np.random.random(10))

# Create spark_temp from pd_temp
spark_temp = ____

# Examine the tables in the catalog
print(____)

# Add spark_temp to the catalog
spark_temp.____

# Examine the tables in the catalog again
print(____)
कोड संपादित करें और चलाएँ