تحويل PySpark DataFrame إلى CSV

Thwyl Pyspark Dataframe Aly Csv



دعونا نلقي نظرة على السيناريوهات الأربعة المختلفة لتحويل PySpark DataFrame إلى CSV. مباشرة ، نستخدم طريقة write.csv () لتحويل PySpark DataFrame إلى CSV. باستخدام وظيفة to_csv () ، نقوم بتحويل PySpark Pandas DataFrame إلى CSV. يمكن أيضًا أن يكون ممكنًا عن طريق تحويله إلى مصفوفة NumPy.

موضوع المحتويات:

إذا كنت تريد معرفة PySpark DataFrame وتثبيت الوحدة النمطية ، فانتقل إلى هذا شرط .







PySpark DataFrame إلى CSV عن طريق التحويل إلى Pandas DataFrame

() to_csv هي طريقة متوفرة في وحدة Pandas التي تحول Pandas DataFrame إلى CSV. أولاً ، نحتاج إلى تحويل PySpark DataFrame إلى Pandas DataFrame. يتم استخدام طريقة toPandas () للقيام بذلك. دعنا نرى بنية to_csv () مع معلماتها.



بناء الجملة:



pandas_dataframe_obj.to_csv (المسار / 'file_name.csv' و رأس ، فهرس ، أعمدة ، وضع ...)
  1. نحتاج إلى تحديد اسم ملف ملف CSV. إذا كنت ترغب في تخزين ملف CSV الذي تم تنزيله في موقع معين على جهاز الكمبيوتر الخاص بك ، فيمكنك أيضًا تحديد المسار مع اسم الملف.
  2. يتم تضمين الأعمدة إذا تم تعيين الرأس على 'True'. إذا لم تكن بحاجة إلى أعمدة ، فاضبط رأس الصفحة على 'خطأ'.
  3. يتم تحديد المؤشرات إذا تم تعيين الفهرس على 'True'. إذا لم تكن بحاجة إلى المؤشرات ، فاضبط الفهرس على 'خطأ'.
  4. تأخذ معلمة الأعمدة قائمة بأسماء الأعمدة التي يمكننا من خلالها تحديد الأعمدة المعينة التي يتم استخراجها إلى ملف CSV.
  5. يمكننا إضافة السجلات إلى CSV باستخدام معلمة الوضع. إلحاق - يتم استخدام 'أ' للقيام بذلك.

مثال 1: مع معلمات الرأس والفهرس

قم بإنشاء 'Skills_df' PySpark DataFrame مع 3 صفوف و 4 أعمدة. قم بتحويل DataFrame هذا إلى CSV عن طريق تحويله أولاً إلى Pandas DataFrame.





استيراد pyspark

من pyspark.sql import SparkSession

linuxhint_spark_app = SparkSession.builder.appName ( 'تلميح Linux' ) .getOrCreate ()

# بيانات المهارات مع 3 صفوف و 4 أعمدة

المهارات = [{ 'بطاقة تعريف' : 123 و 'شخص' : 'عسل' و 'مهارة' : 'تلوين' و 'جائزة' : 25000 } ،

{ 'بطاقة تعريف' : 112 و 'شخص' : 'موني' و 'مهارة' : 'الرقص' و 'جائزة' : 2000 } ،

{ 'بطاقة تعريف' : 153 و 'شخص' : 'تولاسي' و 'مهارة' : 'قراءة' و 'جائزة' : 1200 }

]

# إنشاء إطار بيانات المهارات من البيانات أعلاه

Skills_df = linuxhint_spark_app.createDataFrame (المهارات)

Skills_df.show ()

# تحويل Skills_df إلى pandas DataFrame

pandas_skills_df = Skills_df.toPandas ()

طباعة (pandas_skills_df)

# قم بتحويل DataFrame هذا إلى csv برأس وفهرس

pandas_skills_df.to_csv ( 'pandas_skills1.csv' و رأس = صحيح ، الفهرس = صحيح)

انتاج:



يمكننا أن نرى أن PySpark DataFrame قد تم تحويله إلى Pandas DataFrame. دعونا نرى ما إذا كان قد تم تحويله إلى CSV بأسماء الأعمدة والفهارس:

مثال 2: إلحاق البيانات بـ CSV

قم بإنشاء PySpark DataFrame واحد بسجل واحد وألحقه بـ CSV الذي تم إنشاؤه كجزء من مثالنا الأول. تأكد من أننا نحتاج إلى ضبط العنوان على 'False' مع معلمة الوضع. وإلا ، فسيتم أيضًا إلحاق أسماء الأعمدة كصف.

استيراد pyspark

من pyspark.sql import SparkSession

linuxhint_spark_app = SparkSession.builder.appName ( 'تلميح Linux' ) .getOrCreate ()

المهارات = [{ 'بطاقة تعريف' : 90 و 'شخص' : 'بهارجاف' و 'مهارة' : 'قراءة' و 'جائزة' : 12000 }

]

# إنشاء إطار بيانات المهارات من البيانات أعلاه

Skills_df = linuxhint_spark_app.createDataFrame (المهارات)

# تحويل Skills_df إلى pandas DataFrame

pandas_skills_df = Skills_df.toPandas ()

# أضف DataFrame هذا إلى ملف pandas_skills1.csv

pandas_skills_df.to_csv ( 'pandas_skills1.csv' ، الوضع = 'أ' و رأس = خطأ)

إخراج CSV:

يمكننا أن نرى أنه تمت إضافة صف جديد إلى ملف CSV.

مثال 3: مع معلمة الأعمدة

لنحصل على نفس DataFrame ونحوله إلى CSV بعمودين: 'شخص' و 'جائزة'.

استيراد pyspark

من pyspark.sql import SparkSession

linuxhint_spark_app = SparkSession.builder.appName ( 'تلميح Linux' ) .getOrCreate ()

# بيانات المهارات مع 3 صفوف و 4 أعمدة

المهارات = [{ 'بطاقة تعريف' : 123 و 'شخص' : 'عسل' و 'مهارة' : 'تلوين' و 'جائزة' : 25000 } ،

{ 'بطاقة تعريف' : 112 و 'شخص' : 'موني' و 'مهارة' : 'الرقص' و 'جائزة' : 2000 } ،

{ 'بطاقة تعريف' : 153 و 'شخص' : 'تولاسي' و 'مهارة' : 'قراءة' و 'جائزة' : 1200 }

]

# إنشاء إطار بيانات المهارات من البيانات أعلاه

Skills_df = linuxhint_spark_app.createDataFrame (المهارات)

# تحويل Skills_df إلى pandas DataFrame

pandas_skills_df = Skills_df.toPandas ()

# قم بتحويل DataFrame هذا إلى csv باستخدام أعمدة محددة

pandas_skills_df.to_csv ( 'pandas_skills2.csv' ، أعمدة = [ 'شخص' و 'جائزة' ])

إخراج CSV:

يمكننا أن نرى أن عمودي 'الشخص' و 'الجائزة' فقط موجودان في ملف CSV.

PySpark Pandas DataFrame إلى CSV باستخدام طريقة To_Csv ()

() to_csv هي طريقة متوفرة في وحدة Pandas التي تحول Pandas DataFrame إلى CSV. أولاً ، نحتاج إلى تحويل PySpark DataFrame إلى Pandas DataFrame. يتم استخدام طريقة toPandas () للقيام بذلك. دعنا نرى بنية to_csv () مع معلماتها:

بناء الجملة:

pyspark_pandas_dataframe_obj.to_csv (المسار / 'file_name.csv' و رأس ، فهرس ، أعمدة ، ...)
  1. نحتاج إلى تحديد اسم ملف ملف CSV. إذا كنت ترغب في تخزين ملف CSV الذي تم تنزيله في موقع معين على جهاز الكمبيوتر الخاص بك ، فيمكنك أيضًا تحديد المسار مع اسم الملف.
  2. يتم تضمين الأعمدة إذا تم تعيين الرأس على 'True'. إذا لم تكن بحاجة إلى أعمدة ، فاضبط رأس الصفحة على 'خطأ'.
  3. يتم تحديد المؤشرات إذا تم تعيين الفهرس على 'True'. إذا لم تكن بحاجة إلى المؤشرات ، فاضبط الفهرس على 'خطأ'.
  4. تأخذ معلمة الأعمدة قائمة بأسماء الأعمدة التي يمكننا من خلالها تحديد الأعمدة المعينة التي يتم استخراجها إلى ملف CSV.

مثال 1: مع معلمة الأعمدة

قم بإنشاء PySpark Pandas DataFrame مع 3 أعمدة وتحويله إلى CSV باستخدام to_csv () مع عمودي 'الشخص' و 'الجائزة'.

من pyspark استيراد الباندا

pyspark_pandas_dataframe = pandas.DataFrame ({ 'بطاقة تعريف' : [ 90 و 78 و 90 و 57 ] ، 'شخص' : [ 'عسل' و 'موني' و 'نفسه' و 'رادها' ] ، 'جائزة' : [ 1 و 2 و 3 و 4 ]})

طباعة (pyspark_pandas_dataframe)

# قم بتحويل DataFrame هذا إلى csv باستخدام أعمدة محددة

pyspark_pandas_dataframe.to_csv ( 'pyspark_pandas1' ، أعمدة = [ 'شخص' و 'جائزة' ])

انتاج:

يمكننا أن نرى أن PySpark Pandas DataFrame يتم تحويله إلى CSV مع قسمين. كل قسم يحمل 2 سجلات. أيضًا ، العمودين في CSV هما 'شخص' و 'جائزة' فقط.

ملف القسم 1:

ملف القسم 2:

مثال 2: مع معلمة الرأس

استخدم DataFrame السابق وحدد معلمة الرأس بتعيينها على 'True'.

من pyspark استيراد الباندا

pyspark_pandas_dataframe = pandas.DataFrame ({ 'بطاقة تعريف' : [ 90 و 78 و 90 و 57 ] ، 'شخص' : [ 'عسل' و 'موني' و 'نفسه' و 'رادها' ] ، 'جائزة' : [ 1 و 2 و 3 و 4 ]})

# تحويل DataFrame هذا إلى csv مع الرأس.

pyspark_pandas_dataframe.to_csv ( 'pyspark_pandas2' و رأس = صحيح)

إخراج CSV:

يمكننا أن نرى أن PySpark Pandas DataFrame يتم تحويله إلى CSV مع قسمين. يحتوي كل قسم على سجلين بأسماء الأعمدة.

ملف القسم 1:

ملف القسم 2:

PySpark Pandas DataFrame إلى CSV بالتحويل إلى NumPy Array

لدينا خيار لتحويل PySpark Pandas DataFrame إلى CSV عن طريق التحويل إلى مصفوفة Numpy. () to_numpy هي طريقة متوفرة في وحدة PySpark Pandas التي تحول PySpark Pandas DataFrame إلى مصفوفة NumPy.

بناء الجملة:

pyspark_pandas_dataframe_obj.to_numpy ()

لن يتطلب الأمر أي معلمات.

استخدام طريقة Tofile ()

بعد التحويل إلى مصفوفة NumPy ، يمكننا استخدام طريقة tofile () لتحويل NumPy إلى CSV. هنا ، يخزن كل سجل في خلية عمودية جديدة في ملف CSV.

بناء الجملة:

array_obj.to_numpy (اسم الملف / المسار ، sep = '')

يأخذ اسم الملف أو مسار CSV والفاصل.

مثال:

قم بإنشاء PySpark Pandas DataFrame بثلاثة أعمدة و 4 سجلات وقم بتحويلها إلى CSV عن طريق تحويلها أولاً إلى مصفوفة NumPy.

من pyspark استيراد الباندا

pyspark_pandas_dataframe = pandas.DataFrame ({ 'بطاقة تعريف' : [ 90 و 78 و 90 و 57 ] ، 'شخص' : [ 'عسل' و 'موني' و 'نفسه' و 'رادها' ] ، 'جائزة' : [ 1 و 2 و 3 و 4 ]})

# تحويل DataFrame أعلاه إلى مصفوفة numpy

تم التحويل = pyspark_pandas_dataframe.to_numpy ()

طباعة (محولة)

# باستخدام ملف تعريف ()

تم تحويل الملف الشخصي ( 'convert1.csv' ، سبتمبر = '،' )

انتاج:

[[ 90 'عسل' 1 ]

[ 78 'موني' 2 ]

[ 90 'نفسه' 3 ]

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

يمكننا أن نرى أن PySpark Pandas DataFrame يتم تحويله إلى مجموعة NumPy (12 قيمة). إذا كان بإمكانك رؤية بيانات CSV ، فإنه يخزن كل قيمة خلية في عمود جديد.

PySpark DataFrame إلى CSV باستخدام أسلوب Write.Csv ()

تأخذ طريقة write.csv () اسم الملف / المسار حيث نحتاج إلى حفظ ملف CSV كمعامل.

بناء الجملة:

dataframe_object.coalesce ( 1 ) .write.csv ( 'اسم الملف' )

في الواقع ، يتم حفظ ملف CSV كأقسام (أكثر من قسم). للتخلص من هذا ، نقوم بدمج جميع ملفات CSV المقسمة في ملف واحد. في هذا السيناريو ، نستخدم وظيفة coalesce (). الآن ، يمكننا رؤية ملف CSV واحد فقط مع جميع الصفوف من PySpark DataFrame.

مثال:

ضع في اعتبارك PySpark DataFrame مع 4 سجلات بها 4 أعمدة. اكتب DataFrame هذا إلى CSV بالملف المسمى 'market_details'.

استيراد pyspark

من pyspark.sql import SparkSession

linuxhint_spark_app = SparkSession.builder.appName ( 'تلميح Linux' ) .getOrCreate ()

# بيانات السوق مع 4 صفوف و 4 أعمدة

السوق = [{ 'm_id' : 'mz-001' و 'm_name' : 'ABC' و 'm_city' : 'دلهي' و 'm_state' : 'دلهي' } ،

{ 'm_id' : 'mz-002' و 'm_name' : 'س ص ع' و '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: طريقة واحدة هي استخدام طريقة write () والأخرى تستخدم طريقة to_csv () عن طريق التحويل إلى Pandas DataFrame. إذا كنت تعمل مع PySpark Pandas DataFrame ، فيمكنك أيضًا استخدام to_csv () و tofile () عن طريق التحويل إلى مصفوفة NumPy.