PySpark DataFrame को CSV में कनवर्ट करना

Pyspark Dataframe Ko Csv Mem Kanavarta Karana



आइए PySpark DataFrame को CSV में बदलने के चार अलग-अलग परिदृश्यों को देखें। सीधे तौर पर, हम PySpark DataFrame को CSV में बदलने के लिए write.csv() विधि का उपयोग करते हैं। To_csv () फ़ंक्शन का उपयोग करके, हम PySpark पांडा डेटाफ़्रेम को CSV में परिवर्तित करते हैं। इसे NumPy array में कनवर्ट करके भी संभव हो सकता है।

सामग्री का विषय:

यदि आप PySpark DataFrame और मॉड्यूल इंस्टॉलेशन के बारे में जानना चाहते हैं, तो इसे देखें लेख .







PySpark DataFrame को CSV में पंडों के DataFrame में परिवर्तित करके

To_csv () पंडों के मॉड्यूल में उपलब्ध एक विधि है जो पंडों के डेटाफ़्रेम को CSV में परिवर्तित करती है। सबसे पहले, हमें अपने PySpark DataFrame को पांडा DataFrame में बदलने की आवश्यकता है। ऐसा करने के लिए toPandas () विधि का उपयोग किया जाता है। आइए इसके मापदंडों के साथ to_csv () का सिंटैक्स देखें।



वाक्य - विन्यास:



pandas_dataframe_obj.to_csv(पथ/ 'file_name.csv' , हैडर , इंडेक्स, कॉलम, मोड...)
  1. हमें CSV फ़ाइल का फ़ाइल नाम निर्दिष्ट करने की आवश्यकता है। यदि आप डाउनलोड किए गए सीएसवी को अपने पीसी पर किसी विशेष स्थान पर स्टोर करना चाहते हैं, तो आप फ़ाइल नाम के साथ पथ भी निर्दिष्ट कर सकते हैं।
  2. यदि हेडर 'ट्रू' पर सेट है तो कॉलम शामिल हैं। यदि आपको कॉलम की आवश्यकता नहीं है, तो हेडर को 'गलत' पर सेट करें।
  3. यदि इंडेक्स 'ट्रू' पर सेट है तो इंडेक्स निर्दिष्ट किए जाते हैं। यदि आपको सूचकांकों की आवश्यकता नहीं है, तो सूचकांक को 'गलत' पर सेट करें।
  4. कॉलम पैरामीटर कॉलम नामों की एक सूची लेता है जिसमें हम निर्दिष्ट कर सकते हैं कि CSV फ़ाइल में कौन से विशेष कॉलम निकाले गए हैं।
  5. हम मोड पैरामीटर का उपयोग करके CSV में रिकॉर्ड जोड़ने में सक्षम हैं। Append – ऐसा करने के लिए “a” का प्रयोग किया जाता है।

उदाहरण 1: हैडर और इंडेक्स पैरामीटर्स के साथ

3 पंक्तियों और 4 कॉलम के साथ 'स्किल्स_डीएफ' PySpark DataFrame बनाएं। इस डेटाफ़्रेम को पहले पंडों के डेटाफ़्रेम में परिवर्तित करके CSV में बदलें।





pyspark आयात करें

pyspark.sql से SparkSession आयात करें

linuxhint_spark_app = SparkSession.builder.appName ( 'लिनक्स संकेत' .getOrCreate()

# कौशल डेटा 3 पंक्तियों और 4 कॉलम के साथ

कौशल = [{ 'पहचान' : 123 , 'व्यक्ति' : 'शहद' , 'कौशल' : 'चित्रकारी' , 'इनाम' : 25000 },

{ 'पहचान' : 112 , 'व्यक्ति' : 'मौनी' , 'कौशल' : 'नृत्य' , 'इनाम' : 2000 },

{ 'पहचान' : 153 , 'व्यक्ति' : 'तुलसी' , 'कौशल' : 'अध्ययन' , 'इनाम' : 1200 }

]

# उपरोक्त डेटा से कौशल डेटाफ़्रेम बनाएं

कौशल_डीएफ = linuxhint_spark_app.createDataFrame (कौशल)

कौशल_डीएफ.शो ()

# कौशल_डीएफ को पांडा डेटाफ्रेम में कनवर्ट करें

pandas_skills_df = कौशल_df.toPandas ()

प्रिंट (पांडा_स्किल्स_डीएफ)

# हेडर और इंडेक्स के साथ इस डेटाफ्रेम को सीएसवी में बदलें

पांडा_कौशल_df.to_csv( 'pandas_skills1.csv' , हैडर = सत्य, अनुक्रमणिका = सत्य)

आउटपुट:



हम देख सकते हैं कि PySpark DataFrame को पांडा DataFrame में बदल दिया गया है। आइए देखें कि क्या इसे स्तंभ नामों और सूचकांकों के साथ CSV में बदला गया है:

उदाहरण 2: डेटा को CSV में जोड़ें

1 रिकॉर्ड के साथ एक और PySpark DataFrame बनाएं और इसे CSV में जोड़ें जो हमारे पहले उदाहरण के हिस्से के रूप में बनाया गया है। सुनिश्चित करें कि हमें हेडर को मोड पैरामीटर के साथ 'गलत' पर सेट करने की आवश्यकता है। अन्यथा, स्तंभ नाम भी पंक्ति के रूप में जोड़े जाते हैं।

pyspark आयात करें

pyspark.sql से SparkSession आयात करें

linuxhint_spark_app = SparkSession.builder.appName ( 'लिनक्स संकेत' .getOrCreate()

कौशल = [{ 'पहचान' : 90 , 'व्यक्ति' : 'Bhargav' , 'कौशल' : 'अध्ययन' , 'इनाम' : 12000 }

]

# उपरोक्त डेटा से कौशल डेटाफ़्रेम बनाएं

कौशल_डीएफ = linuxhint_spark_app.createDataFrame (कौशल)

# कौशल_डीएफ को पांडा डेटाफ्रेम में कनवर्ट करें

pandas_skills_df = कौशल_df.toPandas ()

# इस DataFrame को pandas_skills1.csv फ़ाइल में जोड़ें

पांडा_कौशल_df.to_csv( 'pandas_skills1.csv' मोड = 'ए' , हैडर = झूठा)

सीएसवी आउटपुट:

हम देख सकते हैं कि CSV फ़ाइल में एक नई पंक्ति जोड़ी गई है।

उदाहरण 3: कॉलम पैरामीटर के साथ

चलिए एक ही DataFrame लेते हैं और इसे CSV में दो कॉलम के साथ परिवर्तित करते हैं: 'व्यक्ति' और 'पुरस्कार'।

pyspark आयात करें

pyspark.sql से SparkSession आयात करें

linuxhint_spark_app = SparkSession.builder.appName ( 'लिनक्स संकेत' .getOrCreate()

# कौशल डेटा 3 पंक्तियों और 4 कॉलम के साथ

कौशल = [{ 'पहचान' : 123 , 'व्यक्ति' : 'शहद' , 'कौशल' : 'चित्रकारी' , 'इनाम' : 25000 },

{ 'पहचान' : 112 , 'व्यक्ति' : 'मौनी' , 'कौशल' : 'नृत्य' , 'इनाम' : 2000 },

{ 'पहचान' : 153 , 'व्यक्ति' : 'तुलसी' , 'कौशल' : 'अध्ययन' , 'इनाम' : 1200 }

]

# उपरोक्त डेटा से कौशल डेटाफ़्रेम बनाएं

कौशल_डीएफ = linuxhint_spark_app.createDataFrame (कौशल)

# कौशल_डीएफ को पांडा डेटाफ्रेम में कनवर्ट करें

pandas_skills_df = कौशल_df.toPandas ()

# विशिष्ट कॉलम के साथ इस डेटाफ़्रेम को csv में बदलें

पांडा_कौशल_df.to_csv( 'pandas_skills2.csv' कॉलम = [ 'व्यक्ति' , 'इनाम' ])

सीएसवी आउटपुट:

हम देख सकते हैं कि CSV फ़ाइल में केवल “व्यक्ति” और “पुरस्कार” कॉलम मौजूद हैं।

PySpark पांडा डेटाफ़्रेम को CSV में To_Csv () विधि का उपयोग करके

To_csv () पंडों के मॉड्यूल में उपलब्ध एक विधि है जो पंडों के डेटाफ़्रेम को CSV में परिवर्तित करती है। सबसे पहले, हमें अपने PySpark DataFrame को पांडा DataFrame में बदलने की आवश्यकता है। ऐसा करने के लिए toPandas () विधि का उपयोग किया जाता है। आइए इसके मापदंडों के साथ to_csv () का सिंटैक्स देखें:

वाक्य - विन्यास:

pyspark_pandas_dataframe_obj.to_csv(पथ/ 'file_name.csv' , हैडर , इंडेक्स, कॉलम,...)
  1. हमें CSV फ़ाइल का फ़ाइल नाम निर्दिष्ट करने की आवश्यकता है। यदि आप डाउनलोड किए गए सीएसवी को अपने पीसी पर किसी विशेष स्थान पर स्टोर करना चाहते हैं, तो आप फ़ाइल नाम के साथ पथ भी निर्दिष्ट कर सकते हैं।
  2. यदि हेडर 'ट्रू' पर सेट है तो कॉलम शामिल हैं। यदि आपको कॉलम की आवश्यकता नहीं है, तो हेडर को 'गलत' पर सेट करें।
  3. यदि इंडेक्स 'ट्रू' पर सेट है तो इंडेक्स निर्दिष्ट किए जाते हैं। यदि आपको सूचकांकों की आवश्यकता नहीं है, तो सूचकांक को 'गलत' पर सेट करें।
  4. कॉलम पैरामीटर कॉलम नामों की एक सूची लेता है जिसमें हम निर्दिष्ट कर सकते हैं कि कौन से विशेष कॉलम CSV फ़ाइल में निकाले गए हैं।

उदाहरण 1: कॉलम पैरामीटर के साथ

3 कॉलम के साथ एक PySpark पांडा डेटाफ़्रेम बनाएं और इसे 'व्यक्ति' और 'पुरस्कार' कॉलम के साथ to_csv() का उपयोग करके CSV में बदलें।

pyspark आयात पांडा से

pyspark_pandas_dataframe=pandas.DataFrame({ 'पहचान' :[ 90 , 78 , 90 , 57 ], 'व्यक्ति' :[ 'शहद' , 'मौनी' , 'वह स्वयं' , 'राधा' ], 'इनाम' :[ 1 , 2 , 3 , 4 ]})

प्रिंट (pyspark_pandas_dataframe)

# विशिष्ट कॉलम के साथ इस डेटाफ़्रेम को csv में बदलें

pyspark_pandas_dataframe.to_csv( 'pyspark_pandas1' कॉलम = [ 'व्यक्ति' , 'इनाम' ])

आउटपुट:

हम देख सकते हैं कि PySpark Pandas DataFrame को दो विभाजनों के साथ CSV में बदल दिया गया है। प्रत्येक विभाजन में 2 रिकॉर्ड होते हैं। साथ ही, CSV में कॉलम केवल 'व्यक्ति' और 'पुरस्कार' हैं।

विभाजन फ़ाइल 1:

विभाजन फ़ाइल 2:

उदाहरण 2: हैडर पैरामीटर के साथ

पिछले डेटाफ़्रेम का उपयोग करें और हेडर पैरामीटर को 'ट्रू' पर सेट करके निर्दिष्ट करें।

pyspark आयात पांडा से

pyspark_pandas_dataframe=pandas.DataFrame({ 'पहचान' :[ 90 , 78 , 90 , 57 ], 'व्यक्ति' :[ 'शहद' , 'मौनी' , 'वह स्वयं' , 'राधा' ], 'इनाम' :[ 1 , 2 , 3 , 4 ]})

# हेडर के साथ इस डेटाफ्रेम को सीएसवी में बदलें।

pyspark_pandas_dataframe.to_csv( 'pyspark_pandas2' , हैडर = सत्य)

सीएसवी आउटपुट:

हम देख सकते हैं कि PySpark Pandas DataFrame को दो विभाजनों के साथ CSV में बदल दिया गया है। प्रत्येक विभाजन में स्तंभ नामों के साथ 2 रिकॉर्ड होते हैं।

विभाजन फ़ाइल 1:

विभाजन फ़ाइल 2:

PySpark पांडा डेटाफ़्रेम को NumPy सरणी में परिवर्तित करके CSV में

हमारे पास Numpy सरणी में कनवर्ट करके PySpark पांडा डेटाफ़्रेम को CSV में बदलने का विकल्प है। To_numpy() एक तरीका है जो PySpark Pandas मॉड्यूल में उपलब्ध है जो PySpark Pandas DataFrame को NumPy array में कनवर्ट करता है।

वाक्य - विन्यास:

pyspark_pandas_dataframe_obj.to_numpy()

इसमें कोई पैरामीटर नहीं लगेगा।

टोफाइल () विधि का उपयोग करना

NumPy सरणी में कनवर्ट करने के बाद, हम NumPy को CSV में बदलने के लिए tofile () विधि का उपयोग कर सकते हैं। यहाँ, यह प्रत्येक रिकॉर्ड को CSV फ़ाइल में एक नए सेल स्तंभ के अनुसार संग्रहीत करता है।

वाक्य - विन्यास:

array_obj.to_numpy(फ़ाइल का नाम/पथ, सितम्बर=' ')

यह CSV और विभाजक का फ़ाइल नाम या पथ लेता है।

उदाहरण:

3 कॉलम और 4 रिकॉर्ड के साथ PySpark पांडा डेटाफ़्रेम बनाएं और इसे पहले NumPy सरणी में परिवर्तित करके CSV में बदलें।

pyspark आयात पांडा से

pyspark_pandas_dataframe=pandas.DataFrame({ 'पहचान' :[ 90 , 78 , 90 , 57 ], 'व्यक्ति' :[ 'शहद' , 'मौनी' , 'वह स्वयं' , 'राधा' ], 'इनाम' :[ 1 , 2 , 3 , 4 ]})

# ऊपर दिए गए DataFrame को numpy array में बदलें

परिवर्तित = pyspark_pandas_dataframe.to_numpy ()

प्रिंट (रूपांतरित)

# टॉफाइल का उपयोग करना ()

कनवर्ट.टोफाइल ( 'रूपांतरित1.csv' , सितंबर = ',' )

आउटपुट:

[[ 90 'शहद' 1 ]

[ 78 'मौनी' 2 ]

[ 90 'वह स्वयं' 3 ]

[ 57 'राधा' 4 ]]

हम देख सकते हैं कि PySpark Pandas DataFrame को NumPy array (12 मान) में बदल दिया गया है। यदि आप CSV डेटा देख सकते हैं, तो यह प्रत्येक सेल मान को एक नए कॉलम में संग्रहीत करता है।

PySpark DataFrame को CSV में Write.Csv () विधि का उपयोग करके

write.csv() विधि फ़ाइल का नाम/पथ लेती है जहाँ हमें CSV फ़ाइल को एक पैरामीटर के रूप में सहेजने की आवश्यकता होती है।

वाक्य - विन्यास:

dataframe_object.coalesce ( 1 .लिखें। सीएसवी ( 'फ़ाइल का नाम' )

दरअसल, CSV को विभाजन (एक से अधिक) के रूप में सहेजा जाता है। इससे छुटकारा पाने के लिए, हम सभी विभाजित CSV फ़ाइलों को एक में मर्ज कर देते हैं। इस परिदृश्य में, हम कोलेस () फ़ंक्शन का उपयोग करते हैं। अब, हम PySpark DataFrame की सभी पंक्तियों के साथ केवल एक CSV फ़ाइल देख सकते हैं।

उदाहरण:

PySpark DataFrame पर विचार करें जिसमें 4 कॉलम वाले 4 रिकॉर्ड हैं। इस DataFrame को CSV में 'market_details' नामक फ़ाइल के साथ लिखें।

pyspark आयात करें

pyspark.sql से SparkSession आयात करें

linuxhint_spark_app = SparkSession.builder.appName ( 'लिनक्स संकेत' .getOrCreate()

# मार्केट डेटा 4 पंक्तियों और 4 कॉलम के साथ

बाजार = [{ 'एम_आईडी' : 'एमजेड-001' , 'एम_नाम' : 'एबीसी' , 'एम_सिटी' : 'दिल्ली' , 'एम_स्टेट' : 'दिल्ली' },

{ 'एम_आईडी' : 'एमजेड-002' , 'एम_नाम' : 'एक्सवाईजेड' , 'एम_सिटी' : 'पटना' , 'एम_स्टेट' : 'लखनऊ' },

{ 'एम_आईडी' : 'एमजेड-003' , 'एम_नाम' : 'पीक्यूआर' , 'एम_सिटी' : 'फ्लोरिडा' , 'एम_स्टेट' : 'एक' },

{ 'एम_आईडी' : 'एमजेड-004' , 'एम_नाम' : 'एबीसी' , 'एम_सिटी' : 'दिल्ली' , 'एम_स्टेट' : 'लखनऊ' }

]



# उपरोक्त डेटा से मार्केट डेटाफ़्रेम बनाएं

Market_df = linuxhint_spark_app.createDataFrame (बाजार)

# वास्तविक बाजार डेटा

मार्केट_डीएफ.शो ()

# लिखें.सीएसवी ()

बाजार_df.coalesce ( 1 .लिखें। सीएसवी ( 'बाज़ार_विवरण' )

आउटपुट:

आइए फाइल की जांच करें:

रिकॉर्ड देखने के लिए अंतिम फ़ाइल खोलें।

निष्कर्ष

हमने चार अलग-अलग परिदृश्यों को सीखा है जो अलग-अलग मापदंडों पर विचार करके PySpark DataFrame को CSV में परिवर्तित करते हैं। जब आप PySpark DataFrame के साथ काम कर रहे होते हैं, तो आपके पास इस DataFrame को CSV में बदलने के लिए दो विकल्प होते हैं: एक तरीका है राइट () विधि का उपयोग करना और दूसरा पंडों के DataFrame में परिवर्तित करके to_csv () विधि का उपयोग करना। यदि आप PySpark Pandas DataFrame के साथ काम कर रहे हैं, तो आप NumPy सरणी में कनवर्ट करके to_csv() और tofile() का भी उपयोग कर सकते हैं।