PySpark پڑھیں JSON()

Pyspark P Y Json



PySpark DataFrames کے ساتھ کام کرتے ہوئے، اگر آپ JSON ڈیٹا پر کارروائی کرنا چاہتے ہیں تو اسے PySpark DataFrame میں ذخیرہ کرنے کی ضرورت ہے۔ ڈیٹا فریم میں ذخیرہ کرنے کے بعد، ہم ڈیٹا پر مختلف آپریشنز اور طریقے لاگو کر سکتے ہیں۔ اس کے علاوہ، اگر ہم JSON کو PySpark DataFrame میں تبدیل کرتے ہیں تو بہت سے فوائد ہیں کیونکہ یہ آسان ہے اور ہم ڈیٹا کو آسان طریقے سے تبدیل/تقسیم کر سکتے ہیں۔

مواد کا موضوع:

Pandas.read_json() کا استعمال کرتے ہوئے PySpark ڈیٹا فریم میں JSON کو پڑھنا







Spark.read.json() کا استعمال کرتے ہوئے JSON سے PySpark ڈیٹا فریم کو پڑھنا



PySpark SQL کا استعمال کرتے ہوئے JSON کو PySpark ڈیٹا فریم میں پڑھنا



اس ٹیوٹوریل میں، ہم دیکھیں گے کہ JSON کو PySpark ڈیٹا فریم میں pandas.read_json()، spark.read.json()، اور spark.sql کا استعمال کرتے ہوئے کیسے پڑھا جائے۔ تمام منظرناموں میں، ہم مختلف JSON فارمیٹس پر غور کرکے مختلف مثالوں کو دیکھیں گے۔





درج ذیل مثالوں کو نافذ کرنے سے پہلے PySpark لائبریری انسٹال کریں۔

pip انسٹال pyspark

کامیاب تنصیب کے بعد، آپ مندرجہ ذیل آؤٹ پٹ دیکھ سکتے ہیں:



Pandas.read_json() کا استعمال کرتے ہوئے PySpark ڈیٹا فریم میں JSON کو پڑھنا

PySpark میں، createDataFrame() طریقہ براہ راست ڈیٹا فریم بنانے کے لیے استعمال ہوتا ہے۔ یہاں، ہمیں pandas.read_json() طریقہ کے ذریعے JSON فائل/پاتھ کو 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 ڈیٹا فریم میں پڑھنا

read.json() ایک طریقہ ہے جو پانڈوں میں read_json() سے ملتا جلتا ہے۔ یہاں، read.json() JSON یا براہ راست JSON فائل کا راستہ لیتا ہے، اور اسے براہ راست PySpark ڈیٹا فریم میں لوڈ کرتا ہے۔ اس منظر نامے میں createDataFrame() طریقہ استعمال کرنے کی ضرورت نہیں ہے۔ اگر آپ ایک وقت میں ایک سے زیادہ JSON فائلوں کو پڑھنا چاہتے ہیں، تو ہمیں JSON فائل کے ناموں کی ایک فہرست کو کوما کے ذریعے الگ کرنے کی ضرورت ہے۔ تمام JSON ریکارڈز ایک ڈیٹا فریم میں محفوظ ہیں۔

نحو:

سنگل فائل - spark_app.read.json( 'file_name.json' )

ایک سے زیادہ فائلیں - spark_app.read.json([ 'file1.json' , 'file2.json' ،...])

منظر نامہ 1: JSON کو سنگل لائن کے ساتھ پڑھیں

اگر آپ کی JSON فائل record1، record2، record3… (سنگل لائن) فارمیٹس میں ہے، تو ہم اسے سنگل لائنوں کے ساتھ JSON کہہ سکتے ہیں۔ اسپارک ان ریکارڈز پر کارروائی کرتا ہے اور اسے PySpark ڈیٹا فریم میں قطاروں کے طور پر محفوظ کرتا ہے۔ ہر ریکارڈ PySpark ڈیٹا فریم میں ایک قطار ہے۔

آئیے 'candidate_skills.json' کے نام سے ایک JSON فائل بنائیں جس میں 3 ریکارڈ ہوں۔ اس JSON کو PySpark ڈیٹا فریم میں پڑھیں۔

pyspark درآمد کریں۔

pyspark.sql سے SparkSession درآمد کریں۔

linuxhint_spark_app = SparkSession.builder.appName( 'لینکس اشارہ' .getOrCreate()

PySpark ڈیٹا فریم میں # candidate_skills.json پڑھیں

امیدوار_سکلز = linuxhint_spark_app.read.json( 'candidate_skills.json' )

امیدوار_سکلز.شو()

آؤٹ پٹ:

ہم دیکھ سکتے ہیں کہ JSON ڈیٹا کو PySpark DataFrame میں مخصوص ریکارڈز اور کالم کے ناموں کے ساتھ تبدیل کیا گیا ہے۔

منظر نامہ 2: متعدد لائنوں کے ساتھ JSON پڑھیں

اگر آپ کی JSON فائل میں متعدد لائنیں ہیں، تو آپ کو ملٹی لائن پیرامیٹر کو پاس کرنے کے لیے read.option().json() طریقہ استعمال کرنے کی ضرورت ہے جسے درست پر سیٹ کرنا ہے۔ یہ ہمیں PySpark ڈیٹا فریم میں متعدد لائنوں والے JSON کو لوڈ کرنے کی اجازت دیتا ہے۔

read.option( 'ملٹی لائن' , 'سچ' .json( 'file_name.json' )

آئیے 'multi.json' کے نام سے ایک JSON فائل بنائیں جس میں 3 ریکارڈ ہوں۔ اس JSON کو PySpark ڈیٹا فریم میں پڑھیں۔

pyspark درآمد کریں۔

pyspark.sql سے SparkSession درآمد کریں۔

linuxhint_spark_app = SparkSession.builder.appName( 'لینکس اشارہ' .getOrCreate()

# PySpark ڈیٹا فریم میں multi.json (متعدد لائنوں کے ساتھ) پڑھیں

امیدوار_سکلز = linuxhint_spark_app.read.option( 'ملٹی لائن' , 'سچ' .json( 'multi.json' )

امیدوار_سکلز.شو()

آؤٹ پٹ:

منظر نامہ 3: متعدد JSON پڑھیں

ہم پہلے ہی اس ٹیوٹوریل کے ابتدائی مرحلے میں متعدد JSON فائلوں کے بارے میں بات کر چکے ہیں۔ اگر آپ ایک وقت میں ایک سے زیادہ JSON فائلوں کو پڑھنا چاہتے ہیں اور انہیں ایک PySpark ڈیٹا فریم میں محفوظ کرنا چاہتے ہیں، تو ہمیں فائل کے ناموں کی فہرست read.json() طریقہ پر منتقل کرنے کی ضرورت ہے۔

آئیے 'candidate_skills.json' اور 'candidate_skills2.json' کے نام سے دو JSON فائلیں بنائیں اور انہیں PySpark ڈیٹا فریم میں لوڈ کریں۔

'candidate_skills.json' فائل تین ریکارڈ رکھتی ہے۔

'candidate_skill2.json' فائل میں صرف ایک ریکارڈ ہے۔

pyspark درآمد کریں۔

pyspark.sql سے SparkSession درآمد کریں۔

linuxhint_spark_app = SparkSession.builder.appName( 'لینکس اشارہ' .getOrCreate()

# PySpark ڈیٹا فریم میں ایک وقت میں امیدوار_سکلز اور امیدوار_سکلز 2 فائلیں پڑھیں

امیدوار_سکلز = linuxhint_spark_app.read.json([ 'candidate_skills.json' , 'candidate_skills2.json' ])

امیدوار_سکلز.شو()

آؤٹ پٹ:

آخر میں، ڈیٹا فریم چار ریکارڈ رکھتا ہے۔ پہلے تین ریکارڈ پہلے JSON کے ہیں اور آخری ریکارڈ دوسرے JSON کے ہیں۔

Spark.read.json() کا استعمال کرتے ہوئے JSON سے PySpark ڈیٹا فریم کو پڑھنا

read.json() ایک طریقہ ہے جو پانڈوں میں read_json() سے ملتا جلتا ہے۔ یہاں، read.json() JSON یا براہ راست JSON فائل کا راستہ لیتا ہے اور اسے براہ راست PySpark DataFrame میں لوڈ کرتا ہے۔ اس منظر نامے میں createDataFrame() طریقہ استعمال کرنے کی ضرورت نہیں ہے۔ اگر آپ ایک وقت میں ایک سے زیادہ JSON فائلوں کو پڑھنا چاہتے ہیں، تو ہمیں JSON فائل کے ناموں کی ایک فہرست کو کوما کے ذریعے الگ کرنے کی ضرورت ہے۔ تمام JSON ریکارڈز ایک ڈیٹا فریم میں محفوظ ہیں۔

نحو:

سنگل فائل - spark_app.read.json( 'file_name.json' )

ایک سے زیادہ فائلیں - spark_app.read.json([ 'file1.json' , 'file2.json' ،...])

منظر نامہ 1: JSON کو سنگل لائن کے ساتھ پڑھیں

اگر آپ کی JSON فائل record1، record2، record3… (سنگل لائن) فارمیٹ میں ہے، تو ہم اسے سنگل لائنوں کے ساتھ JSON کہہ سکتے ہیں۔ اسپارک ان ریکارڈز پر کارروائی کرتا ہے اور اسے PySpark ڈیٹا فریم میں قطاروں کے طور پر محفوظ کرتا ہے۔ ہر ریکارڈ PySpark ڈیٹا فریم میں ایک قطار ہے۔

آئیے 'candidate_skills.json' کے نام سے ایک JSON فائل بنائیں جس میں 3 ریکارڈ ہوں۔ اس JSON کو PySpark ڈیٹا فریم میں پڑھیں۔

pyspark درآمد کریں۔

pyspark.sql سے SparkSession درآمد کریں۔

linuxhint_spark_app = SparkSession.builder.appName( 'لینکس اشارہ' .getOrCreate()

PySpark ڈیٹا فریم میں # candidate_skills.json پڑھیں

امیدوار_سکلز = linuxhint_spark_app.read.json( 'candidate_skills.json' )

امیدوار_سکلز.شو()

آؤٹ پٹ:

ہم دیکھ سکتے ہیں کہ JSON ڈیٹا کو PySpark DataFrame میں مخصوص ریکارڈز اور کالم کے ناموں کے ساتھ تبدیل کیا گیا ہے۔

PySpark SQL کا استعمال کرتے ہوئے JSON کو PySpark ڈیٹا فریم میں پڑھنا

PySpark SQL کا استعمال کرتے ہوئے ہمارے JSON ڈیٹا کا ایک عارضی منظر بنانا ممکن ہو سکتا ہے۔ براہ راست، ہم عارضی منظر بنانے کے وقت JSON فراہم کر سکتے ہیں۔ درج ذیل نحو کو دیکھیں۔ اس کے بعد، ہم PySpark ڈیٹا فریم کو ظاہر کرنے کے لیے SELECT کمانڈ استعمال کر سکتے ہیں۔

نحو:

spark_app.sql( 'json آپشنز (پاتھ 'file_name.json') کا استعمال کرتے ہوئے عارضی منظر VIEW_NAME بنائیں' )

یہاں، 'VIEW_NAME' JSON ڈیٹا کا منظر ہے اور 'file_name' JSON فائل کا نام ہے۔

مثال 1:

JSON فائل پر غور کریں جو پچھلی مثالوں میں استعمال کی گئی ہے - 'candidate_skills.json'۔ '*' آپریٹر کے ساتھ SELECT کا استعمال کرتے ہوئے ڈیٹا فریم سے تمام قطاریں منتخب کریں۔ یہاں، * PySpark ڈیٹا فریم سے تمام کالم منتخب کرتا ہے۔

pyspark درآمد کریں۔

پانڈا درآمد کریں۔

pyspark.sql سے SparkSession درآمد کریں۔

linuxhint_spark_app = SparkSession.builder.appName( 'لینکس اشارہ' .getOrCreate()

# JSON سے VIEW بنانے کے لیے spark.sql کا استعمال

امیدوار_مہارت = linuxhint_spark_app.sql( 'json آپشنز کا استعمال کرتے ہوئے امیدوار_ڈیٹا کو عارضی طور پر دیکھیں (پاتھ 'candidate_skills.json')' )

# امیدوار_ڈیٹا سے تمام ریکارڈز کو منتخب کرنے کے لیے SELECT استفسار کا استعمال کریں۔

linuxhint_spark_app.sql( امیدوار_ڈیٹا سے 'منتخب کریں' .show()

آؤٹ پٹ:

PySpark ڈیٹا فریم (JSON سے پڑھا گیا) میں ریکارڈز کی کل تعداد 3 ہے۔

مثال 2:

اب، عمر کے کالم کی بنیاد پر PySpark ڈیٹا فریم میں ریکارڈز کو فلٹر کریں۔ 22 سال سے زیادہ عمر کے ساتھ قطاریں حاصل کرنے کے لیے عمر پر 'سے بڑا' آپریٹر استعمال کریں۔

# عمر > 22 کے ساتھ ریکارڈز کو منتخب کرنے کے لیے SELECT استفسار کا استعمال کریں۔

linuxhint_spark_app.sql( امیدوار_ڈیٹا سے منتخب کریں * جہاں عمر>22' .show()

آؤٹ پٹ:

PySpark ڈیٹا فریم میں صرف ایک ریکارڈ ہے جس کی عمر 22 سال سے زیادہ ہے۔

نتیجہ

ہم نے PySpark ڈیٹا فریم میں JSON کو پڑھنے کے تین مختلف طریقے سیکھے۔ سب سے پہلے، ہم نے سیکھا کہ read_json() طریقہ استعمال کرنا ہے جو پانڈاس ماڈیول میں JSON سے PySpark ڈیٹا فریم کو پڑھنے کے لیے دستیاب ہے۔ اگلا، ہم نے سیکھا کہ آپشن() کے ساتھ spark.read.json() طریقہ استعمال کرتے ہوئے سنگل/ملٹی لائن JSON فائلوں کو کیسے پڑھنا ہے۔ ایک وقت میں متعدد JSON فائلوں کو پڑھنے کے لیے، ہمیں فائل کے ناموں کی فہرست کو اس طریقہ پر منتقل کرنے کی ضرورت ہے۔ PySpark SQL کا استعمال کرتے ہوئے، JSON فائل کو عارضی منظر میں پڑھا جاتا ہے اور SELECT استفسار کا استعمال کرتے ہوئے DataFrame ظاہر ہوتا ہے۔