पाइस्पार्क सीएसवी पढ़ें ()

Pa Isparka Si Esavi Parhem



CSV डेटा से PySpark DataFrame का निर्माण PySpark में read.csv() फ़ंक्शन का उपयोग करके संभव है। कुछ परिदृश्यों में, यदि आप बाहरी डेटा को PySpark DataFrame में लोड करना चाहते हैं, तो PySpark JSON, CSV, आदि जैसे कई स्वरूपों का समर्थन करता है। इस ट्यूटोरियल में, हम देखेंगे कि CSV डेटा को कैसे पढ़ें और इसे PySpark DataFrame में कैसे लोड करें। साथ ही, हम उदाहरणों के साथ एक बार में एक ही DataFrame में कई CSV फ़ाइलों को लोड करने पर चर्चा करेंगे।

Pyspark.sql.DataFrameReader.csv ()

इस पद्धति का उपयोग CSV फ़ाइल/फ़ाइलों से डेटा को पढ़ने और उन्हें PySpark DataFrame में संग्रहीत करने के लिए किया जाता है। CSV को DataFrame में पढ़ते समय यह विकल्प लेता है। हम उदाहरणों के साथ विभिन्न विकल्पों पर विस्तार से चर्चा करेंगे। एक से अधिक सीएसवी फ़ाइल पास करते समय, अल्पविराम ऑपरेटर द्वारा अलग की गई सूची में विस्तार के साथ फ़ाइल नाम पास करना महत्वपूर्ण है। यदि आप केवल एक CSV फ़ाइल पढ़ रहे हैं, तो सूची में फ़ाइल का नाम प्रदान करने की कोई आवश्यकता नहीं है।

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







एकल फ़ाइल - Spark_app.read.csv('file.csv', विकल्प ...)

एकाधिक फ़ाइलें - Spark_app.read.csv (['file1.csv', 'file2.csv', ...], विकल्प ...)



विकल्पों और फ़ाइल नामों को अलग करना भी संभव हो सकता है।



एक फाइल – Spark_app.read.options(options…).csv('file.csv')





एकाधिक फ़ाइलें - Spark_app.read.options(options...).csv(['file1.csv','file2.csv',...])

निम्नलिखित उदाहरणों को लागू करने से पहले PySpark लाइब्रेरी स्थापित करें।



पिप पाइस्पार्क स्थापित करें

सफल स्थापना के बाद, आप आउटपुट को निम्नानुसार देख सकते हैं:

परिदृश्य 1: CSV फ़ाइल हैडर पढ़ना

चलिए 5 रिकॉर्ड के साथ “person_skill.csv” नाम की एक CSV फ़ाइल बनाते हैं जो निम्नलिखित में दिखाई गई है और इसे PySpark DataFrame में लोड करें:

हेडर पैरामीटर का उपयोग PySpark DataFrame में कॉलम नाम निर्दिष्ट करने के लिए किया जाता है। यह एक बूलियन मान लेता है। यदि यह 'ट्रू' है, तो CSV फ़ाइल में मौजूद वास्तविक कॉलम नाम डेटाफ़्रेम में निर्दिष्ट हैं, अन्यथा, c0, c1, c2… निर्दिष्ट हैं और वास्तविक कॉलम नाम एक पंक्ति होगी। हेडर पैरामीटर को सत्य पर सेट करना सबसे अच्छा अभ्यास है।

उदाहरण 1: हैडर = ट्रू

pyspark आयात करें

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

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

# हेडर के साथ कॉलम लेबल के साथ कौशल में person_skill.csv नाम के csv को लोड करें

कौशल = linuxhint_spark_app.read.csv ( 'व्यक्ति_कौशल.सीएसवी' , हैडर = सत्य)

# डेटाफ़्रेम प्रदर्शित करें

कौशल.शो ()

आउटपुट:

व्याख्या:

हम देख सकते हैं कि PySpark DataFrame निर्दिष्ट कॉलम और पंक्तियों के साथ CSV फ़ाइल से बनाया गया है।

स्तंभों की जाँच करने के लिए निम्न कमांड का उपयोग करें:

skills.columns

उदाहरण 2: हैडर = झूठा

pyspark आयात करें

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

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

# बिना हेडर वाले कॉलम लेबल वाले कौशल में person_skill.csv नाम के csv को लोड करें

कौशल = linuxhint_spark_app.read.csv ( 'व्यक्ति_कौशल.सीएसवी' , हैडर = झूठा)

# डेटाफ़्रेम प्रदर्शित करें

कौशल.शो ()

आउटपुट:

व्याख्या:

हम देख सकते हैं कि PySpark DataFrame मौजूदा कॉलम के बिना CSV फ़ाइल से बनाया गया है।

साथ ही, मौजूदा कॉलम PySpark DataFrame में पंक्तियों के रूप में संग्रहीत हैं।

skills.columns

Read.options.csv() का उपयोग करना

अब, हम read.options.csv() पद्धति का उपयोग करके CSV फ़ाइल को पढ़ते हैं। यहां, हमें csv () में तर्क और फ़ाइल नाम के रूप में विकल्पों में सीमांकक, हेडर आदि जैसे विकल्पों को पारित करने की आवश्यकता है। हेडर पैरामीटर को 'ट्रू' पर सेट करके पास करते हैं।

परिद्रश्य 1:

pyspark आयात करें

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

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

# read.options.csv () का उपयोग करना

कौशल = linuxhint_spark_app.read। विकल्प ( हैडर = सच)। सीएसवी ( 'व्यक्ति_कौशल.सीएसवी' )

# डेटाफ़्रेम प्रदर्शित करें

कौशल.शो ()

आउटपुट:

परिदृश्य 2: CSV फ़ाइल डेलीमीटर पढ़ना

सीमांकक पैरामीटर उस वर्ण को लेता है जिसका उपयोग प्रत्येक फ़ील्ड को अलग करने के लिए किया जाता है। यह डिफ़ॉल्ट रूप से अल्पविराम (,) लेता है। आइए उसी CSV फ़ाइल का उपयोग करें जो पहले परिदृश्य में उपयोग की गई थी और सीमांकक के रूप में अल्पविराम (',') पास करें।

pyspark आयात करें

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

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

# हेडर के साथ सीमांकक के साथ read.options.csv () का उपयोग करना

कौशल = linuxhint_spark_app.read। विकल्प ( हैडर = सच, सीमांकक = ',' .सीएसवी ( 'व्यक्ति_कौशल.सीएसवी' )

# डेटाफ़्रेम प्रदर्शित करें

कौशल.शो ()

आउटपुट:

एकाधिक फ़ाइलें पढ़ना

अब तक, हम एक ही CSV फ़ाइल पढ़ रहे थे। आइए देखें कि एक से अधिक CSV फ़ाइल कैसे पढ़ें। इस परिदृश्य में, एक ही PySpark DataFrame में कई फ़ाइलों में पंक्तियाँ जोड़ी जाती हैं। हमें विधि के भीतर सूची में फ़ाइल नामों को पास करने की आवश्यकता है।

उदाहरण:

निम्नलिखित डेटा के साथ 'person_skill.csv' और 'person_skill2.csv' नाम की निम्नलिखित CSV फाइलें हैं:


इन दो CSV फ़ाइलों को पढ़ें और उन्हें एक एकल PySpark DataFrame में संग्रहित करें।

pyspark आयात करें

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

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

# शीर्षक के साथ स्तंभ लेबल के साथ कौशल में person_skill.csv और person_skill2.csv नाम की 2 csv फ़ाइलें लोड करें

कौशल = linuxhint_spark_app.read.csv ([ 'व्यक्ति_कौशल.सीएसवी' , 'व्यक्ति_कौशल2.सीएसवी' ], सितंबर = ',' , हैडर = सत्य)

कौशल.शो ()

आउटपुट:

व्याख्या:

पहले CSV में 6 रिकॉर्ड हैं और दूसरे CSV में 3 रिकॉर्ड हैं। हम देख सकते हैं कि पहले CSV को पहले DataFrame में लोड किया गया है। फिर, दूसरा CSV लोड किया जाता है। अंत में, PySpark DataFrame में 9 रिकॉर्ड हैं।

निष्कर्ष

PySpark DataFrame में CSV को पढ़ना pyspark.sql.DataFrameReader.csv() विधि से काफी सरल है। कॉलम और प्रारूप निर्दिष्ट करने के लिए हेडर और डिलीमीटर पैरामीटर को इस विधि में पास करना संभव हो सकता है। PySpark एक समय में कई CSV फ़ाइलों को उनके विकल्पों के साथ प्रदान की गई विधियों के साथ पढ़ने का समर्थन करता है। इस लेख में, हमने विभिन्न विकल्पों पर विचार करके उदाहरण देखे हैं। साथ ही, हमने मेथड में ऑप्शंस को पास करने के दो तरीके देखे हैं।