PySpark ڈیٹا فریم کو CSV میں تبدیل کرنا

Pyspark Y A Frym Kw Csv My Tbdyl Krna



آئیے PySpark ڈیٹا فریم کو CSV میں تبدیل کرنے کے چار مختلف منظرناموں کو دیکھتے ہیں۔ براہ راست، ہم PySpark ڈیٹا فریم کو CSV میں تبدیل کرنے کے لیے write.csv() طریقہ استعمال کرتے ہیں۔ to_csv() فنکشن کا استعمال کرتے ہوئے، ہم PySpark Pandas DataFrame کو CSV میں تبدیل کرتے ہیں۔ اسے NumPy صف میں تبدیل کر کے بھی ممکن ہو سکتا ہے۔

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

اگر آپ PySpark DataFrame اور ماڈیول کی تنصیب کے بارے میں جاننا چاہتے ہیں، تو اسے دیکھیں مضمون .







پی اسپارک ڈیٹا فریم کو پانڈاس ڈیٹا فریم میں تبدیل کرکے CSV میں

to_csv() ایک طریقہ ہے جو پانڈاس ماڈیول میں دستیاب ہے جو پانڈاس ڈیٹا فریم کو CSV میں تبدیل کرتا ہے۔ سب سے پہلے، ہمیں اپنے PySpark DataFrame کو Pandas DataFrame میں تبدیل کرنے کی ضرورت ہے۔ toPandas() طریقہ ایسا کرنے کے لیے استعمال کیا جاتا ہے۔ آئیے اس کے پیرامیٹرز کے ساتھ to_csv() کا نحو دیکھیں۔



نحو:



pandas_dataframe_obj.to_csv(path/ 'file_name.csv' , ہیڈر انڈیکس، کالم، موڈ...)
  1. ہمیں CSV فائل کے فائل کا نام بتانے کی ضرورت ہے۔ اگر آپ ڈاؤن لوڈ کردہ CSV کو اپنے پی سی پر کسی خاص جگہ پر اسٹور کرنا چاہتے ہیں، تو آپ فائل کے نام کے ساتھ ساتھ راستہ بھی بتا سکتے ہیں۔
  2. اگر ہیڈر کو 'True' پر سیٹ کیا گیا ہو تو کالم شامل کیے جاتے ہیں۔ اگر آپ کو کالم کی ضرورت نہیں ہے تو ہیڈر کو 'False' پر سیٹ کریں۔
  3. اگر انڈیکس کو 'True' پر سیٹ کیا گیا ہے تو انڈیکس بتائے جاتے ہیں۔ اگر آپ کو انڈیکس کی ضرورت نہیں ہے تو انڈیکس کو 'False' پر سیٹ کریں۔
  4. کالم پیرامیٹر کالم کے ناموں کی ایک فہرست لیتا ہے جس میں ہم یہ بتا سکتے ہیں کہ کون سے مخصوص کالم CSV فائل میں نکالے گئے ہیں۔
  5. ہم موڈ پیرامیٹر کا استعمال کرتے ہوئے ریکارڈز کو CSV میں شامل کرنے کے قابل ہیں۔ ضمیمہ - 'a' ایسا کرنے کے لیے استعمال ہوتا ہے۔

مثال 1: ہیڈر اور انڈیکس پیرامیٹرز کے ساتھ

3 قطاروں اور 4 کالموں کے ساتھ 'Skills_df' PySpark ڈیٹا فریم بنائیں۔ اس ڈیٹا فریم کو پہلے اسے پانڈاس ڈیٹا فریم میں تبدیل کرکے CSV میں تبدیل کریں۔





pyspark درآمد کریں۔

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

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

3 قطاروں اور 4 کالموں کے ساتھ # مہارت کا ڈیٹا

ہنر =[{ 'id' : 123 , 'شخص' : 'شہد' , 'مہارت' : 'پینٹنگ' , 'انعام' : 25000

{ 'id' : 112 , 'شخص' : 'مونی' , 'مہارت' : 'رقص' , 'انعام' : 2000

{ 'id' : 153 , 'شخص' : 'تلسی' , 'مہارت' : 'پڑھنا' , 'انعام' : 1200 }

]

# مندرجہ بالا ڈیٹا سے مہارت کا ڈیٹا فریم بنائیں

skills_df = linuxhint_spark_app.createDataFrame(مہارت)

skills_df.show()

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

pandas_skills_df= skills_df.toPandas()

پرنٹ (پانڈا_سکلز_ڈی ایف)

# اس ڈیٹا فریم کو ہیڈر اور انڈیکس کے ساتھ csv میں تبدیل کریں۔

pandas_skills_df.to_csv( 'pandas_skills1.csv' , ہیڈر =سچ، اشاریہ = سچ)

آؤٹ پٹ:



ہم دیکھ سکتے ہیں کہ PySpark DataFrame کو Pandas DataFrame میں تبدیل کر دیا گیا ہے۔ آئیے دیکھتے ہیں کہ آیا اسے کالم کے ناموں اور اشاریوں کے ساتھ CSV میں تبدیل کیا جاتا ہے:

مثال 2: ڈیٹا کو CSV میں شامل کریں۔

1 ریکارڈ کے ساتھ ایک اور PySpark ڈیٹا فریم بنائیں اور اسے CSV میں شامل کریں جو ہماری پہلی مثال کے حصے کے طور پر بنایا گیا ہے۔ یقینی بنائیں کہ ہمیں موڈ پیرامیٹر کے ساتھ ہیڈر کو 'False' پر سیٹ کرنے کی ضرورت ہے۔ بصورت دیگر، کالم کے نام بھی ایک قطار کے طور پر شامل کیے جاتے ہیں۔

pyspark درآمد کریں۔

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

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

ہنر =[{ 'id' : 90 , 'شخص' : 'بھارگو' , 'مہارت' : 'پڑھنا' , 'انعام' : 12000 }

]

# مندرجہ بالا ڈیٹا سے مہارت کا ڈیٹا فریم بنائیں

skills_df = linuxhint_spark_app.createDataFrame(مہارت)

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

pandas_skills_df= skills_df.toPandas()

# اس ڈیٹا فریم کو pandas_skills1.csv فائل میں شامل کریں۔

pandas_skills_df.to_csv( 'pandas_skills1.csv' , mode= 'a' , ہیڈر =جھوٹا)

CSV آؤٹ پٹ:

ہم دیکھ سکتے ہیں کہ CSV فائل میں ایک نئی قطار شامل کی گئی ہے۔

مثال 3: کالم پیرامیٹر کے ساتھ

آئیے ایک ہی ڈیٹا فریم رکھیں اور اسے دو کالموں کے ساتھ CSV میں تبدیل کریں: 'شخص' اور 'انعام'۔

pyspark درآمد کریں۔

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

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

3 قطاروں اور 4 کالموں کے ساتھ # مہارت کا ڈیٹا

ہنر =[{ 'id' : 123 , 'شخص' : 'شہد' , 'مہارت' : 'پینٹنگ' , 'انعام' : 25000

{ 'id' : 112 , 'شخص' : 'مونی' , 'مہارت' : 'رقص' , 'انعام' : 2000

{ 'id' : 153 , 'شخص' : 'تلسی' , 'مہارت' : 'پڑھنا' , 'انعام' : 1200 }

]

# مندرجہ بالا ڈیٹا سے مہارت کا ڈیٹا فریم بنائیں

skills_df = linuxhint_spark_app.createDataFrame(مہارت)

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

pandas_skills_df= skills_df.toPandas()

# اس ڈیٹا فریم کو مخصوص کالموں کے ساتھ csv میں تبدیل کریں۔

pandas_skills_df.to_csv( 'pandas_skills2.csv' کالم =[ 'شخص' , 'انعام' ])

CSV آؤٹ پٹ:

ہم دیکھ سکتے ہیں کہ CSV فائل میں صرف 'شخص' اور 'انعام' کالم موجود ہیں۔

PySpark Pandas DataFrame to CSV To_Csv() طریقہ استعمال کرتے ہوئے

to_csv() ایک طریقہ ہے جو پانڈاس ماڈیول میں دستیاب ہے جو پانڈاس ڈیٹا فریم کو CSV میں تبدیل کرتا ہے۔ سب سے پہلے، ہمیں اپنے PySpark DataFrame کو Pandas DataFrame میں تبدیل کرنے کی ضرورت ہے۔ toPandas() طریقہ ایسا کرنے کے لیے استعمال کیا جاتا ہے۔ آئیے اس کے پیرامیٹرز کے ساتھ to_csv() کا نحو دیکھیں:

نحو:

pyspark_pandas_dataframe_obj.to_csv(path/ 'file_name.csv' , ہیڈر انڈیکس، کالم،...)
  1. ہمیں CSV فائل کے فائل کا نام بتانے کی ضرورت ہے۔ اگر آپ ڈاؤن لوڈ کردہ CSV کو اپنے پی سی پر کسی خاص جگہ پر اسٹور کرنا چاہتے ہیں، تو آپ فائل کے نام کے ساتھ ساتھ راستہ بھی بتا سکتے ہیں۔
  2. اگر ہیڈر کو 'True' پر سیٹ کیا گیا ہو تو کالم شامل کیے جاتے ہیں۔ اگر آپ کو کالم کی ضرورت نہیں ہے تو ہیڈر کو 'False' پر سیٹ کریں۔
  3. اگر انڈیکس کو 'True' پر سیٹ کیا گیا ہے تو انڈیکس بتائے جاتے ہیں۔ اگر آپ کو انڈیکس کی ضرورت نہیں ہے تو انڈیکس کو 'False' پر سیٹ کریں۔
  4. کالم پیرامیٹر کالم کے ناموں کی ایک فہرست لیتا ہے جس میں ہم یہ بتا سکتے ہیں کہ کون سے مخصوص کالم CSV فائل میں نکالے گئے ہیں۔

مثال 1: کالم پیرامیٹر کے ساتھ

3 کالموں کے ساتھ ایک PySpark Pandas DataFrame بنائیں اور اسے to_csv() کا استعمال کرتے ہوئے 'person' اور 'انعام' کالمز کے ساتھ CSV میں تبدیل کریں۔

pyspark امپورٹ پانڈوں سے

pyspark_pandas_dataframe=pandas.DataFrame({ 'id' :[ 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: ہیڈر پیرامیٹر کے ساتھ

پچھلا ڈیٹا فریم استعمال کریں اور ہیڈر پیرامیٹر کو 'True' پر سیٹ کرکے اس کی وضاحت کریں۔

pyspark امپورٹ پانڈوں سے

pyspark_pandas_dataframe=pandas.DataFrame({ 'id' :[ 90 , 78 , 90 , 57 'شخص' :[ 'شہد' , 'مونی' , 'خود' , 'رادھا' 'انعام' :[ 1 , 2 , 3 , 4 ]})

# اس ڈیٹا فریم کو ہیڈر کے ساتھ csv میں تبدیل کریں۔

pyspark_pandas_dataframe.to_csv( 'pyspark_pandas2' , ہیڈر =سچ)

CSV آؤٹ پٹ:

ہم دیکھ سکتے ہیں کہ PySpark Pandas DataFrame کو دو پارٹیشنز کے ساتھ CSV میں تبدیل کیا گیا ہے۔ ہر پارٹیشن کالم کے ناموں کے ساتھ 2 ریکارڈ رکھتا ہے۔

پارٹیشن فائل 1:

پارٹیشن فائل 2:

PySpark Pandas DataFrame کو NumPy Array میں تبدیل کرکے CSV میں

ہمارے پاس PySpark Pandas DataFrame کو Numpy صف میں تبدیل کر کے CSV میں تبدیل کرنے کا اختیار ہے۔ to_numpy() ایک طریقہ ہے جو PySpark Pandas ماڈیول میں دستیاب ہے جو PySpark Pandas DataFrame کو NumPy سرنی میں تبدیل کرتا ہے۔

نحو:

pyspark_pandas_dataframe_obj.to_numpy()

یہ کوئی پیرامیٹرز نہیں لے گا۔

Tofile() طریقہ استعمال کرنا

NumPy سرنی میں تبدیل کرنے کے بعد، ہم NumPy کو CSV میں تبدیل کرنے کے لیے tofile() طریقہ استعمال کر سکتے ہیں۔ یہاں، یہ ہر ریکارڈ کو CSV فائل میں ایک نئے سیل کالم میں محفوظ کرتا ہے۔

نحو:

array_obj.to_numpy(فائل کا نام/پاتھ، sep=')

یہ فائل کا نام یا CSV اور ایک جداکار کا راستہ لیتا ہے۔

مثال:

3 کالموں اور 4 ریکارڈز کے ساتھ PySpark Pandas DataFrame بنائیں اور اسے پہلے NumPy اری میں تبدیل کرکے CSV میں تبدیل کریں۔

pyspark امپورٹ پانڈوں سے

pyspark_pandas_dataframe=pandas.DataFrame({ 'id' :[ 90 , 78 , 90 , 57 'شخص' :[ 'شہد' , 'مونی' , 'خود' , 'رادھا' 'انعام' :[ 1 , 2 , 3 , 4 ]})

# مندرجہ بالا ڈیٹا فریم کو numpy صف میں تبدیل کریں۔

تبدیل شدہ = pyspark_pandas_dataframe.to_numpy()

پرنٹ (تبدیل)

# tofile () کا استعمال

converted.tofile( 'converted1.csv' ، ستمبر = '،' )

آؤٹ پٹ:

[[ 90 'شہد' 1 ]

[ 78 'مونی' 2 ]

[ 90 'خود' 3 ]

[ 57 'رادھا' 4 ]]

ہم دیکھ سکتے ہیں کہ PySpark Pandas DataFrame NumPy اری (12 ویلیوز) میں تبدیل ہو گیا ہے۔ اگر آپ CSV ڈیٹا دیکھ سکتے ہیں، تو یہ ہر سیل ویلیو کو ایک نئے کالم میں اسٹور کرتا ہے۔

Write.Csv() طریقہ استعمال کرتے ہوئے CSV میں PySpark ڈیٹا فریم

write.csv() طریقہ فائل کا نام/پاتھ لیتا ہے جہاں ہمیں CSV فائل کو پیرامیٹر کے طور پر محفوظ کرنے کی ضرورت ہوتی ہے۔

نحو:

dataframe_object.coalesce( 1 .write.csv( 'فائل کا نام' )

دراصل، CSV کو پارٹیشنز کے طور پر محفوظ کیا جاتا ہے (ایک سے زیادہ)۔ اس سے چھٹکارا پانے کے لیے، ہم تمام تقسیم شدہ CSV فائلوں کو ایک میں ضم کر دیتے ہیں۔ اس منظر نامے میں، ہم coalesce() فنکشن استعمال کرتے ہیں۔ اب، ہم PySpark DataFrame کی تمام قطاروں کے ساتھ صرف ایک CSV فائل دیکھ سکتے ہیں۔

مثال:

PySpark ڈیٹا فریم پر غور کریں جس میں 4 ریکارڈز ہیں جن میں 4 کالم ہیں۔ اس ڈیٹا فریم کو CSV میں 'market_details' نام کی فائل کے ساتھ لکھیں۔

pyspark درآمد کریں۔

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

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

# مارکیٹ ڈیٹا 4 قطاروں اور 4 کالموں کے ساتھ

مارکیٹ =[{ 'm_id' : 'mz-001' , 'm_name' : 'ABC' , 'm_city' : 'دہلی' , 'm_state' : 'دہلی'

{ 'm_id' : 'mz-002' , 'm_name' : 'XYZ' , 'm_city' : 'پٹنہ' , 'm_state' : 'لکھنؤ'

{ 'm_id' : 'mz-003' , 'm_name' : 'PQR' , 'm_city' : 'فلوریڈا' , 'm_state' : 'ایک'

{ 'm_id' : 'mz-004' , 'm_name' : 'ABC' , 'm_city' : 'دہلی' , 'm_state' : 'لکھنؤ' }

]



# اوپر والے ڈیٹا سے مارکیٹ ڈیٹا فریم بنائیں

market_df = linuxhint_spark_app.createDataFrame(مارکیٹ)

# مارکیٹ کا اصل ڈیٹا

market_df.show()

# write.csv()

market_df.coalesce( 1 .write.csv( 'مارکیٹ_تفصیلات' )

آؤٹ پٹ:

آئیے فائل کو چیک کریں:

ریکارڈز دیکھنے کے لیے آخری فائل کھولیں۔

نتیجہ

ہم نے چار مختلف منظرنامے سیکھے جو مختلف پیرامیٹرز پر غور کر کے مثالوں کے ساتھ PySpark DataFrame کو CSV میں تبدیل کرتے ہیں۔ جب آپ PySpark DataFrame کے ساتھ کام کر رہے ہوتے ہیں، تو آپ کے پاس اس DataFrame کو CSV میں تبدیل کرنے کے لیے دو اختیارات ہوتے ہیں: ایک طریقہ رائٹ() طریقہ استعمال کرنا ہے اور دوسرا to_csv() طریقہ Pandas DataFrame میں تبدیل کر کے استعمال کرنا ہے۔ اگر آپ PySpark Pandas DataFrame کے ساتھ کام کر رہے ہیں، تو آپ to_csv() اور tofile() کو NumPy اری میں تبدیل کر کے بھی استعمال کر سکتے ہیں۔