PySpark पढ़ें JSON ()

Pyspark Parhem Json



PySpark DataFrames के साथ काम करते समय, यदि आप JSON डेटा को संसाधित करना चाहते हैं, तो इसे PySpark DataFrame में संग्रहीत करने की आवश्यकता है। DataFrame में स्टोर करने के बाद, हम डेटा पर विभिन्न संचालन और विधियों को लागू कर सकते हैं। इसके अलावा, यदि हम JSON को PySpark DataFrame में कनवर्ट करते हैं तो बहुत सारे फायदे हैं क्योंकि यह सरल है और हम डेटा को सरल तरीके से रूपांतरित/विभाजित कर सकते हैं।

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

पांडा.read_json () का उपयोग करके JSON को PySpark DataFrame में पढ़ना







Spark.read.json() का उपयोग करके JSON को PySpark DataFrame में पढ़ना



PySpark SQL का उपयोग करके JSON को PySpark DataFrame में पढ़ना



इस ट्यूटोरियल में, हम देखेंगे कि pandas.read_json(), spark.read.json(), और spark.sql का उपयोग करके JSON को PySpark DataFrame में कैसे पढ़ा जाए। सभी परिदृश्यों में, हम विभिन्न JSON स्वरूपों पर विचार करके विभिन्न उदाहरणों को देखेंगे।





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

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

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



पांडा.read_json () का उपयोग करके JSON को PySpark DataFrame में पढ़ना

PySpark में, createDataFrame () विधि का उपयोग सीधे DataFrame बनाने के लिए किया जाता है। यहां, हमें सिर्फ JSON फाइल/पथ को JSON फाइल में pandas.read_json() मेथड से पास करना होगा। यह read_json() विधि फ़ाइल नाम/पथ लेती है जो पांडस मॉड्यूल में उपलब्ध है। यही कारण है कि पांडा मॉड्यूल का आयात और उपयोग करना आवश्यक है।

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

spark_app.createDataFrame(pandas.read_json( 'file_name.json' ))

उदाहरण:

चलिए “student_skill.json” नाम की एक JSON फ़ाइल बनाते हैं जिसमें 2 रिकॉर्ड होते हैं। यहां, कुंजियां/कॉलम 'छात्र 1' और 'छात्र 2' हैं। पंक्तियाँ नाम, आयु, कौशल 1 और कौशल 2 हैं।

pyspark आयात करें

पांडा आयात करें

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

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

# pandas.read_json () का उपयोग करना

कैंडिडेट_स्किल्स = linuxhint_spark_app.createDataFrame(pandas.read_json( 'student_skill.json' ))

कैंडिडेट_स्किल्स.शो ()

आउटपुट:

हम देख सकते हैं कि JSON डेटा निर्दिष्ट कॉलम और पंक्तियों के साथ PySpark DataFrame में परिवर्तित हो गया है।

2. Spark.read.json() का उपयोग करके JSON को PySpark DataFrame में पढ़ना

Read.json() एक तरीका है जो पांडा में read_json() के समान है। यहाँ, read.json() JSON या सीधे JSON फ़ाइल के लिए एक रास्ता लेता है, और इसे सीधे PySpark DataFrame में लोड करता है। इस परिदृश्य में createDataFrame() विधि का उपयोग करने की कोई आवश्यकता नहीं है। यदि आप एक समय में कई JSON फ़ाइलों को पढ़ना चाहते हैं, तो हमें JSON फ़ाइल नामों की सूची को कॉमा द्वारा अलग की गई सूची के माध्यम से पास करना होगा। सभी JSON रिकॉर्ड एक ही DataFrame में संग्रहीत हैं।

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

एकल फ़ाइल - Spark_app.read.json( 'file_name.json' )

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

परिदृश्य 1: सिंगल लाइन वाले JSON को पढ़ें

यदि आपकी JSON फ़ाइल रिकॉर्ड 1, रिकॉर्ड 2, रिकॉर्ड 3… (सिंगल लाइन) स्वरूपों में है, तो हम इसे सिंगल लाइन के साथ JSON कह सकते हैं। स्पार्क इन रिकॉर्ड्स को प्रोसेस करता है और इसे PySpark DataFrame में पंक्तियों के रूप में संग्रहीत करता है। प्रत्येक रिकॉर्ड PySpark DataFrame में एक पंक्ति है।

चलिए “candidate_skills.json” नाम की एक JSON फ़ाइल बनाते हैं जिसमें 3 रिकॉर्ड होते हैं। इस JSON को PySpark DataFrame में पढ़ें।

pyspark आयात करें

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

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

# PySpark DataFrame में candidates_skills.json पढ़ें

उम्मीदवार_स्किल्स = linuxhint_spark_app.read.json ( 'उम्मीदवार_कौशल.json' )

कैंडिडेट_स्किल्स.शो ()

आउटपुट:

हम देख सकते हैं कि JSON डेटा निर्दिष्ट रिकॉर्ड और कॉलम नामों के साथ PySpark DataFrame में परिवर्तित हो गया है।

परिदृश्य 2: जेएसओएन को एकाधिक पंक्तियों में पढ़ें

यदि आपकी JSON फ़ाइल में कई पंक्तियाँ हैं, तो आपको मल्टीलाइन पैरामीटर को पास करने के लिए read.option().json() विधि का उपयोग करने की आवश्यकता है जिसे सही पर सेट करना होगा। यह हमें PySpark DataFrame में कई पंक्तियों वाले JSON को लोड करने की अनुमति देता है।

पढ़ें. विकल्प ( 'बहुपंक्ति' , 'सत्य' .जेसन ( 'file_name.json' )

चलिए “multi.json” नाम की एक JSON फाइल बनाते हैं जिसमें 3 रिकॉर्ड होते हैं। इस JSON को PySpark DataFrame में पढ़ें।

pyspark आयात करें

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

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

# PySpark DataFrame में multi.json (कई पंक्तियों वाला) पढ़ें

उम्मीदवार_कौशल = linuxhint_spark_app.read.option ( 'बहुपंक्ति' , 'सत्य' .जेसन ( 'मल्टी.जेसन' )

कैंडिडेट_स्किल्स.शो ()

आउटपुट:

परिदृश्य 3: एकाधिक JSON पढ़ें

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

चलिए “candidate_skills.json” और “candidate_skills2.json” नाम की दो JSON फाइलें बनाते हैं और उन्हें PySpark DataFrame में लोड करते हैं।

'Candidate_skills.json' फ़ाइल में तीन रिकॉर्ड होते हैं।

'Candidate_skill2.json' फ़ाइल में केवल एक ही रिकॉर्ड होता है।

pyspark आयात करें

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

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

# PySpark DataFrame में एक बार में candidates_skills और candidates_skills2 फाइलें पढ़ें

कैंडिडेट_स्किल्स = linuxhint_spark_app.read.json([ 'उम्मीदवार_कौशल.json' , 'उम्मीदवार_कौशल 2.json' ])

कैंडिडेट_स्किल्स.शो ()

आउटपुट:

अंत में, DataFrame में चार रिकॉर्ड होते हैं। पहले तीन रिकॉर्ड पहले JSON के हैं और अंतिम रिकॉर्ड दूसरे JSON के हैं।

Spark.read.json() का उपयोग करके JSON को PySpark DataFrame में पढ़ना

Read.json() एक तरीका है जो पांडा में read_json() के समान है। यहाँ, read.json() JSON या सीधे JSON फ़ाइल के लिए एक रास्ता लेता है और इसे सीधे PySpark DataFrame में लोड करता है। इस परिदृश्य में createDataFrame() विधि का उपयोग करने की कोई आवश्यकता नहीं है। यदि आप एक समय में कई JSON फ़ाइलों को पढ़ना चाहते हैं, तो हमें JSON फ़ाइल नामों की सूची को कॉमा द्वारा अलग की गई सूची के माध्यम से पास करना होगा। सभी JSON रिकॉर्ड एक ही DataFrame में संग्रहीत हैं।

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

एकल फ़ाइल - Spark_app.read.json( 'file_name.json' )

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

परिदृश्य 1: सिंगल लाइन वाले JSON को पढ़ें

यदि आपकी JSON फ़ाइल रिकॉर्ड 1, रिकॉर्ड 2, रिकॉर्ड 3… (सिंगल लाइन) प्रारूप में है, तो हम इसे सिंगल लाइन के साथ JSON कह सकते हैं। स्पार्क इन रिकॉर्ड्स को प्रोसेस करता है और इसे PySpark DataFrame में पंक्तियों के रूप में संग्रहीत करता है। प्रत्येक रिकॉर्ड PySpark DataFrame में एक पंक्ति है।

चलिए “candidate_skills.json” नाम की एक JSON फ़ाइल बनाते हैं जिसमें 3 रिकॉर्ड होते हैं। इस JSON को PySpark DataFrame में पढ़ें।

pyspark आयात करें

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

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

# PySpark DataFrame में candidates_skills.json पढ़ें

उम्मीदवार_स्किल्स = linuxhint_spark_app.read.json ( 'उम्मीदवार_कौशल.json' )

कैंडिडेट_स्किल्स.शो ()

आउटपुट:

हम देख सकते हैं कि JSON डेटा निर्दिष्ट रिकॉर्ड और कॉलम नामों के साथ PySpark DataFrame में परिवर्तित हो गया है।

PySpark SQL का उपयोग करके JSON को PySpark DataFrame में पढ़ना

PySpark SQL का उपयोग करके हमारे JSON डेटा का एक अस्थायी दृश्य बनाना संभव हो सकता है। सीधे तौर पर, हम अस्थायी दृश्य बनाते समय JSON प्रदान कर सकते हैं। निम्नलिखित सिंटैक्स को देखें। उसके बाद, हम PySpark DataFrame को प्रदर्शित करने के लिए SELECT कमांड का उपयोग कर सकते हैं।

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

चिंगारी_ऐप.एसक्यूएल ( 'JSON विकल्प (पथ 'file_name.json') का उपयोग करके अस्थायी दृश्य VIEW_NAME बनाएं' )

यहां, 'VIEW_NAME' JSON डेटा का दृश्य है और 'file_name' JSON फ़ाइल का नाम है।

उदाहरण 1:

JSON फ़ाइल पर विचार करें जिसका उपयोग पिछले उदाहरणों में किया गया है - 'candidate_skills.json'। '*' ऑपरेटर के साथ SELECT का उपयोग करके DataFrame से सभी पंक्तियों का चयन करें। यहाँ, * PySpark DataFrame से सभी स्तंभों का चयन करता है।

pyspark आयात करें

पांडा आयात करें

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

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

# JSON से व्यू बनाने के लिए स्पार्क.एसक्यूएल का उपयोग करना

उम्मीदवार_कौशल = linuxhint_spark_app.sql ( 'Json विकल्प (पथ 'candidate_skills.json') का उपयोग करके कैंडिडेट_डेटा देखें' )

# कैंडिडेट_डेटा से सभी रिकॉर्ड्स का चयन करने के लिए सेलेक्ट क्वेरी का उपयोग करें।

linuxhint_spark_app.sql( 'उम्मीदवार_डेटा से चुनें *' )।दिखाना()

आउटपुट:

PySpark DataFrame (JSON से पढ़ा गया) में रिकॉर्ड्स की कुल संख्या 3 है।

उदाहरण 2:

अब, आयु कॉलम के आधार पर PySpark DataFrame में रिकॉर्ड को फ़िल्टर करें। 22 वर्ष से अधिक आयु वाली पंक्तियों को प्राप्त करने के लिए आयु पर 'इससे अधिक' ऑपरेटर का उपयोग करें।

# उम्र> 22 के साथ रिकॉर्ड का चयन करने के लिए चयन क्वेरी का उपयोग करें।

linuxhint_spark_app.sql( 'उम्मीदवार_डेटा से चुनें * जहां उम्र> 22' )।दिखाना()

आउटपुट:

PySpark DataFrame में केवल एक रिकॉर्ड है जिसकी उम्र 22 से अधिक है।

निष्कर्ष

हमने JSON को PySpark DataFrame में पढ़ने के तीन अलग-अलग तरीके सीखे। सबसे पहले, हमने सीखा कि रीड_जसन () पद्धति का उपयोग कैसे करें जो पंडों के मॉड्यूल में उपलब्ध है ताकि JSON को PySpark DataFrame में पढ़ा जा सके। इसके बाद, हमने सीखा कि सिंगल/मल्टी लाइन JSON फाइलों को कैसे पढ़ा जाता है, इसके लिए विकल्प() के साथ स्पार्क.रीड.जेसन() मेथड का इस्तेमाल किया जाता है। एक समय में कई JSON फ़ाइलों को पढ़ने के लिए, हमें फ़ाइल नामों की एक सूची को इस विधि में पास करना होगा। PySpark SQL का उपयोग करते हुए, JSON फ़ाइल को अस्थायी दृश्य में पढ़ा जाता है और SELECT क्वेरी का उपयोग करके DataFrame प्रदर्शित किया जाता है।