PySpark Read CSV()

Pyspark Read Csv



CSV ڈیٹا سے PySpark ڈیٹا فریم بنانا PySpark میں read.csv() فنکشن کا استعمال کرتے ہوئے ممکن ہے۔ کچھ حالات میں، اگر آپ بیرونی ڈیٹا کو PySpark ڈیٹا فریم میں لوڈ کرنا چاہتے ہیں، تو PySpark JSON، CSV، وغیرہ جیسے کئی فارمیٹس کو سپورٹ کرتا ہے۔ اس ٹیوٹوریل میں، ہم دیکھیں گے کہ CSV ڈیٹا کو کیسے پڑھا جائے اور اسے PySpark ڈیٹا فریم میں کیسے لوڈ کیا جائے۔ نیز، ہم مثالوں کے ساتھ ایک وقت میں ایک ہی ڈیٹا فریم میں متعدد CSV فائلوں کو لوڈ کرنے پر تبادلہ خیال کریں گے۔

Pyspark.sql.DataFrameReader.csv()

یہ طریقہ CSV فائل/s سے ڈیٹا کو پڑھنے اور PySpark ڈیٹا فریم میں ذخیرہ کرنے کے لیے استعمال کیا جاتا ہے۔ ڈیٹا فریم میں CSV پڑھتے وقت یہ اختیارات لیتا ہے۔ ہم مثالوں کے ساتھ مختلف اختیارات پر تفصیل سے بات کریں گے۔ ایک سے زیادہ CSV فائلوں کو پاس کرتے وقت، فائل کے ناموں کو ایکسٹینشن کے ساتھ ایک فہرست میں پاس کرنا ضروری ہے جسے کوما آپریٹر نے الگ کیا ہو۔ اگر آپ صرف ایک CSV فائل پڑھ رہے ہیں، تو فہرست میں فائل کا نام فراہم کرنے کی ضرورت نہیں ہے۔

نحو:







سنگل فائل - spark_app.read.csv('file.csv', اختیارات …)

متعدد فائلیں۔ - spark_app.read.csv(['file1.csv','file2.csv',…],options…)



اختیارات اور فائل کے ناموں کو الگ کرنا بھی ممکن ہے۔



ایک فائل – spark_app.read.options(options…).csv('file.csv')





متعدد فائلیں۔ – spark_app.read.options(options…).csv(['file1.csv','file2.csv',…])

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



pip انسٹال pyspark

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

منظر نامہ 1: CSV فائل ہیڈر پڑھنا

آئیے 5 ریکارڈز کے ساتھ 'person_skill.csv' کے نام سے ایک CSV فائل بنائیں جو درج ذیل میں دکھایا گیا ہے اور اسے PySpark ڈیٹا فریم میں لوڈ کریں:

ہیڈر پیرامیٹر PySpark ڈیٹا فریم میں کالم کے ناموں کی وضاحت کے لیے استعمال کیا جاتا ہے۔ یہ ایک بولین قدر لیتا ہے۔ اگر یہ 'True' ہے تو، اصل کالم کے نام جو 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( 'person_skill.csv' , ہیڈر =سچ)

# ڈیٹا فریم ڈسپلے کریں۔

skills.show()

آؤٹ پٹ:

وضاحت:

ہم دیکھ سکتے ہیں کہ PySpark DataFrame مخصوص کالموں اور قطاروں کے ساتھ CSV فائل سے بنایا گیا ہے۔

کالموں کو چیک کرنے کے لیے درج ذیل کمانڈ کا استعمال کریں:

skills.columns

مثال 2: ہیڈر = غلط

pyspark درآمد کریں۔

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

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

# csv نامی - person_skill.csv کو بغیر ہیڈر کے کالم لیبل کے ساتھ مہارتوں میں لوڈ کریں۔

مہارت = linuxhint_spark_app.read.csv( 'person_skill.csv' , ہیڈر =جھوٹا)

# ڈیٹا فریم ڈسپلے کریں۔

skills.show()

آؤٹ پٹ:

وضاحت:

ہم دیکھ سکتے ہیں کہ PySpark DataFrame موجودہ کالموں کے بغیر CSV فائل سے بنایا گیا ہے۔

اس کے علاوہ، موجودہ کالم PySpark DataFrame میں قطاروں کے طور پر محفوظ کیے جاتے ہیں۔

skills.columns

Read.options.csv() کا استعمال کرتے ہوئے

اب، ہم read.options.csv() طریقہ استعمال کرتے ہوئے CSV فائل کو پڑھتے ہیں۔ یہاں، ہمیں آپشنز میں ڈیلیمیٹر، ہیڈر وغیرہ جیسے آپشنز کو آرگیومینٹس اور فائل کا نام csv() میں پاس کرنے کی ضرورت ہے۔ آئیے ہیڈر پیرامیٹر کو 'True' پر سیٹ کرکے پاس کریں۔

منظرنامہ 1:

pyspark درآمد کریں۔

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

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

# read.options.csv() کا استعمال

مہارت = linuxhint_spark_app.read۔ اختیارات ( ہیڈر =True) csv( 'person_skill.csv' )

# ڈیٹا فریم ڈسپلے کریں۔

skills.show()

آؤٹ پٹ:

منظر نامہ 2: CSV فائل ڈیلیمیٹر پڑھنا

حد بندی پیرامیٹر وہ کریکٹر لیتا ہے جو ہر فیلڈ کو الگ کرنے کے لیے استعمال ہوتا ہے۔ یہ بطور ڈیفالٹ کوما (،) لیتا ہے۔ آئیے وہی CSV فائل استعمال کریں جو پہلے منظر نامے میں استعمال ہوتی ہے اور کوما (',') کو حد بندی کے طور پر پاس کریں۔

pyspark درآمد کریں۔

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

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

# ریڈر کے ساتھ ڈیلیمیٹر کے ساتھ read.options.csv() کا استعمال

مہارت = linuxhint_spark_app.read۔ اختیارات ( ہیڈر =سچ، حد بندی = '،' .csv( 'person_skill.csv' )

# ڈیٹا فریم ڈسپلے کریں۔

skills.show()

آؤٹ پٹ:

ایک سے زیادہ فائلیں پڑھنا

اب تک، ہم ایک ہی CSV فائل پڑھ رہے ہیں۔ آئیے دیکھتے ہیں کہ ایک سے زیادہ CSV فائل کیسے پڑھیں۔ اس منظر نامے میں، ایک سے زیادہ فائلوں کی قطاریں ایک PySpark ڈیٹا فریم میں شامل کی جاتی ہیں۔ ہمیں صرف فائل کے ناموں کو طریقہ کے اندر ایک فہرست میں پاس کرنے کی ضرورت ہے۔

مثال:

آئیے درج ذیل ڈیٹا کے ساتھ 'person_skill.csv' اور 'person_skill2.csv' کے نام سے درج ذیل CSV فائلیں رکھیں:


ان دو CSV فائلوں کو پڑھیں اور انہیں ایک PySpark ڈیٹا فریم میں اسٹور کریں۔

pyspark درآمد کریں۔

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

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

# ہیڈر کے ساتھ کالم لیبل کے ساتھ مہارتوں میں - person_skill.csv اور person_skill2.csv نام کی 2 csv فائلیں لوڈ کریں۔

مہارت = linuxhint_spark_app.read.csv([ 'person_skill.csv' , 'person_skill2.csv' ]، ستمبر = '،' , ہیڈر =سچ)

skills.show()

آؤٹ پٹ:

وضاحت:

پہلی CSV کے پاس 6 ریکارڈ اور دوسرے CSV کے پاس 3 ریکارڈ ہیں۔ ہم دیکھ سکتے ہیں کہ پہلا CSV پہلے ڈیٹا فریم میں لوڈ ہوتا ہے۔ پھر، دوسرا CSV لوڈ ہو جاتا ہے۔ آخر میں، PySpark ڈیٹا فریم کے پاس 9 ریکارڈ ہیں۔

نتیجہ

PySpark DataFrame میں CSV کو پڑھنا pyspark.sql.DataFrameReader.csv() طریقہ سے کافی آسان ہے۔ کالم اور فارمیٹ کی وضاحت کرنے کے لیے اس طریقہ میں ہیڈر اور ڈیلیمیٹر پیرامیٹرز کو منتقل کرنا ممکن ہو سکتا ہے۔ PySpark فراہم کردہ طریقوں کے ساتھ ان کے اختیارات کے ساتھ ایک وقت میں متعدد CSV فائلوں کو پڑھنے کی بھی حمایت کرتا ہے۔ اس مضمون میں، ہم نے مختلف اختیارات پر غور کرکے مثالیں دیکھی ہیں۔ اس کے علاوہ، ہم نے طریقہ کار میں اختیارات کو منتقل کرنے کے دو طریقے دیکھے ہیں۔