נושא התוכן:
- PySpark DataFrame ל-CSV על ידי המרה ל-Pandas DataFrame
- PySpark Pandas DataFrame ל-CSV באמצעות שיטת To_Csv()
- PySpark Pandas DataFrame ל-CSV על ידי המרה למערך NumPy
- PySpark DataFrame ל-CSV באמצעות שיטת Write.Csv()
אם אתה רוצה לדעת על 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(path/ 'שם_קובץ.csv' , כּוֹתֶרֶת ,אינדקס,עמודות,מצב...)
- עלינו לציין את שם הקובץ של קובץ ה-CSV. אם ברצונך לאחסן את ה-CSV שהורדת במיקום מסוים במחשב האישי שלך, תוכל גם לציין את הנתיב יחד עם שם הקובץ.
- עמודות נכללות אם הכותרת מוגדרת ל-'True'. אם אינך צריך עמודות, הגדר את הכותרת ל'שקר'.
- מדדים יצוינו אם האינדקס מוגדר ל-'True'. אם אינך זקוק למדדים, הגדר את האינדקס ל-'False'.
- פרמטר Columns לוקח רשימה של שמות עמודות שבהן נוכל לציין אילו עמודות מסוימות יחולצו לקובץ ה-CSV.
- אנו יכולים להוסיף את הרשומות ל-CSV באמצעות פרמטר מצב. הוספה - 'a' משמש לעשות זאת.
דוגמה 1: עם פרמטרי הכותרת והאינדקס
צור את ה-'skills_df' PySpark DataFrame עם 3 שורות ו-4 עמודות. המר את ה-DataFrame הזה ל-CSV על-ידי המרתו תחילה ל-Pandas DataFrame.
ייבוא pyspark
מ-pyspark.sql ייבוא SparkSession
linuxhint_spark_app = SparkSession.builder.appName( 'רמז לינוקס' ).getOrCreate()
# נתוני מיומנויות עם 3 שורות ו-4 עמודות
כישורים =[{ 'תְעוּדַת זֶהוּת' : 123 , 'אדם' : 'דבש' , 'מְיוּמָנוּת' : 'צִיוּר' , 'פרס' : 25,000 },
{ 'תְעוּדַת זֶהוּת' : 112 , 'אדם' : 'מוני' , 'מְיוּמָנוּת' : 'לִרְקוֹד' , 'פרס' : 2000 },
{ 'תְעוּדַת זֶהוּת' : 153 , 'אדם' : 'טולסי' , 'מְיוּמָנוּת' : 'קריאה' , 'פרס' : 1200 }
]
# צור את מסגרת הנתונים של כישורים מהנתונים שלעיל
skills_df = linuxhint_spark_app.createDataFrame(skills)
skills_df.show()
# המר skills_df ל-Pandas DataFrame
pandas_skills_df= skills_df.toPandas()
print(pandas_skills_df)
# המר את ה-DataFrame הזה ל-csv עם כותרת ואינדקס
pandas_skills_df.to_csv( 'pandas_skills1.csv' , כּוֹתֶרֶת =True, index=True)
תְפוּקָה:
אנו יכולים לראות שה-PySpark DataFrame מומר ל-Pandas DataFrame. בואו נראה אם הוא מומר ל-CSV עם שמות עמודות ואינדקסים:
דוגמה 2: הוסף את הנתונים ל-CSV
צור PySpark DataFrame אחד נוסף עם רשומה אחת וצרף את זה ל-CSV שנוצר כחלק מהדוגמה הראשונה שלנו. ודא שאנחנו צריכים להגדיר את הכותרת ל-'False' יחד עם פרמטר המצב. אחרת, שמות העמודות מצורפים גם כשורה.
ייבוא pysparkמ-pyspark.sql ייבוא SparkSession
linuxhint_spark_app = SparkSession.builder.appName( 'רמז לינוקס' ).getOrCreate()
כישורים =[{ 'תְעוּדַת זֶהוּת' : 90 , 'אדם' : 'בהרגב' , 'מְיוּמָנוּת' : 'קריאה' , 'פרס' : 12000 }
]
# צור את מסגרת הנתונים של כישורים מהנתונים שלעיל
skills_df = linuxhint_spark_app.createDataFrame(skills)
# המר 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 ייבוא SparkSession
linuxhint_spark_app = SparkSession.builder.appName( 'רמז לינוקס' ).getOrCreate()
# נתוני מיומנויות עם 3 שורות ו-4 עמודות
כישורים =[{ 'תְעוּדַת זֶהוּת' : 123 , 'אדם' : 'דבש' , 'מְיוּמָנוּת' : 'צִיוּר' , 'פרס' : 25,000 },
{ 'תְעוּדַת זֶהוּת' : 112 , 'אדם' : 'מוני' , 'מְיוּמָנוּת' : 'לִרְקוֹד' , 'פרס' : 2000 },
{ 'תְעוּדַת זֶהוּת' : 153 , 'אדם' : 'טולסי' , 'מְיוּמָנוּת' : 'קריאה' , 'פרס' : 1200 }
]
# צור את מסגרת הנתונים של כישורים מהנתונים שלעיל
skills_df = linuxhint_spark_app.createDataFrame(skills)
# המר 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(path/ 'שם_קובץ.csv' , כּוֹתֶרֶת ,אינדקס,עמודות,...)- עלינו לציין את שם הקובץ של קובץ ה-CSV. אם ברצונך לאחסן את ה-CSV שהורדת במיקום מסוים במחשב האישי שלך, תוכל גם לציין את הנתיב יחד עם שם הקובץ.
- עמודות נכללות אם הכותרת מוגדרת ל-'True'. אם אינך צריך עמודות, הגדר את הכותרת ל'שקר'.
- מדדים יצוינו אם האינדקס מוגדר ל-'True'. אם אינך זקוק למדדים, הגדר את האינדקס ל-'False'.
- הפרמטר עמודות לוקח רשימה של שמות עמודות שבהן נוכל לציין אילו עמודות מסוימות יחולצו לקובץ ה-CSV.
דוגמה 1: עם פרמטר העמודות
צור PySpark Pandas DataFrame עם 3 עמודות והמר אותו ל-CSV באמצעות to_csv() עם העמודות 'אדם' ו-'פרס'.
מ-pyspark ייבוא פנדותpyspark_pandas_dataframe=pandas.DataFrame({ 'תְעוּדַת זֶהוּת' :[ 90 , 78 , 90 , 57 ], 'אדם' :[ 'דבש' , 'מוני' , 'עַצמוֹ' , 'רדה' ], 'פרס' :[ 1 , 2 , 3 , 4 ]})
print(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 עם שתי מחיצות. כל מחיצה מכילה 2 רשומות עם שמות עמודות.
קובץ מחיצה 1:
קובץ מחיצה 2:
PySpark Pandas DataFrame ל-CSV על ידי המרה למערך NumPy
יש לנו אפשרות להמיר את 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(filename/path,sep=' ')זה לוקח את שם הקובץ או הנתיב של CSV ומפריד.
דוגמא:
צור PySpark Pandas DataFrame עם 3 עמודות ו-4 רשומות והמר אותו ל-CSV על ידי המרתו תחילה למערך NumPy.
מ-pyspark ייבוא פנדותpyspark_pandas_dataframe=pandas.DataFrame({ 'תְעוּדַת זֶהוּת' :[ 90 , 78 , 90 , 57 ], 'אדם' :[ 'דבש' , 'מוני' , 'עַצמוֹ' , 'רדה' ], 'פרס' :[ 1 , 2 , 3 , 4 ]})
# המר את ה-DataFrame לעיל למערך numpy
converted = pyspark_pandas_dataframe.to_numpy()
הדפס (הומר)
# שימוש ב-tofile()
converted.tofile( 'converted1.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 ייבוא SparkSession
linuxhint_spark_app = SparkSession.builder.appName( 'רמז לינוקס' ).getOrCreate()
# נתוני שוק עם 4 שורות ו-4 עמודות
שוק =[{ 'בֵּינוֹנִי' : 'mz-001' , 'm_name' : 'א ב ג' , 'm_city' : 'דלהי' , 'm_state' : 'דלהי' },
{ 'בֵּינוֹנִי' : 'mz-002' , 'm_name' : 'XYZ' , 'm_city' : 'פטנה' , 'm_state' : 'מזל' },
{ 'בֵּינוֹנִי' : 'mz-003' , 'm_name' : 'PQR' , 'm_city' : 'פלורידה' , 'm_state' : 'אחד' },
{ 'בֵּינוֹנִי' : 'mz-004' , 'm_name' : 'א ב ג' , 'm_city' : 'דלהי' , 'm_state' : 'מזל' }
]
# צור את מסגרת הנתונים של השוק מהנתונים שלעיל
market_df = linuxhint_spark_app.createDataFrame(market)
# נתוני שוק בפועל
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.