PySpark Read CSV()

Pyspark Read Csv



בניית ה-PySpark DataFrame מנתוני ה-CSV אפשרית ב-PySpark באמצעות הפונקציה read.csv(). בתרחישים מסוימים, אם ברצונך לטעון את הנתונים החיצוניים לתוך PySpark DataFrame, PySpark תומך בפורמטים רבים כמו JSON, CSV וכו'. במדריך זה, נראה כיצד לקרוא את נתוני ה-CSV ולטעון אותם לתוך PySpark DataFrame. כמו כן, נדון בטעינת קובצי CSV מרובים ב-DataFrame בודד בכל פעם עם דוגמאות.

Pyspark.sql.DataFrameReader.csv()

שיטה זו משמשת לקריאת הנתונים מקבצי ה-CSV ואחסוןם ב-PySpark DataFrame. זה לוקח את האפשרויות בזמן קריאת CSV לתוך DataFrame. נדון באפשרויות השונות עם דוגמאות בפירוט. בזמן העברת יותר מקובץ 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

בואו ניצור קובץ CSV בשם 'person_skill.csv' עם 5 רשומות המוצגות ברשומות הבאות ונטען אותו לתוך PySpark DataFrame:

פרמטר הכותרת משמש לציון שמות העמודות ב-PySpark DataFrame. זה דורש ערך בוליאני. אם הוא 'True', שמות העמודות בפועל שקיימים בקובץ ה-CSV מצוינים ב-DataFrame, אחרת, ה-c0, c1, c2... מצוינים ושמות העמודות בפועל יהיו שורה. עדיף להגדיר את פרמטר הכותרת כ-true.

דוגמה 1: כותרת = נכון

ייבוא ​​pyspark

מ-pyspark.sql ייבוא ​​SparkSession

linuxhint_spark_app = SparkSession.builder.appName( 'רמז לינוקס' ).getOrCreate()

# טען את ה-csv בשם - person_skill.csv לתוך מיומנויות עם תוויות עמודות עם כותרת

skills = linuxhint_spark_app.read.csv( 'person_skill.csv' , כּוֹתֶרֶת =נכון)

# הצג את DataFrame

skills.show()

תְפוּקָה:

הֶסבֵּר:

אנו יכולים לראות שה-PySpark DataFrame נוצר מקובץ ה-CSV עם עמודות ושורות שצוינו.

השתמש בפקודה הבאה כדי לבדוק את העמודות:

מיומנויות.עמודות

דוגמה 2: כותרת = שקר

ייבוא ​​pyspark

מ-pyspark.sql ייבוא ​​SparkSession

linuxhint_spark_app = SparkSession.builder.appName( 'רמז לינוקס' ).getOrCreate()

# טען את ה-csv בשם - person_skill.csv לתוך מיומנויות עם תוויות עמודות ללא כותרת

skills = linuxhint_spark_app.read.csv( 'person_skill.csv' , כּוֹתֶרֶת =שקר)

# הצג את DataFrame

skills.show()

תְפוּקָה:

הֶסבֵּר:

אנו יכולים לראות שה-PySpark DataFrame נוצר מקובץ ה-CSV ללא עמודות קיימות.

כמו כן, העמודות הקיימות מאוחסנות כשורות ב-PySpark DataFrame.

מיומנויות.עמודות

שימוש ב-Read.options.csv()

כעת, אנו קוראים את קובץ ה-CSV באמצעות שיטת read.options.csv()‎. כאן, עלינו להעביר את האפשרויות כמו מפריד, כותרת וכו' באפשרויות כארגומנטים ושם קובץ ב-csv(). בוא נעביר את פרמטר הכותרת על ידי הגדרתו ל'True'.

תרחיש 1:

ייבוא ​​pyspark

מ-pyspark.sql ייבוא ​​SparkSession

linuxhint_spark_app = SparkSession.builder.appName( 'רמז לינוקס' ).getOrCreate()

# שימוש ב-read.options.csv()

skills = linuxhint_spark_app.read. אפשרויות ( כּוֹתֶרֶת =True).csv( 'person_skill.csv' )

# הצג את DataFrame

skills.show()

תְפוּקָה:

תרחיש 2: קריאת מפריד קבצי CSV

הפרמטר המפריד לוקח את התו המשמש להפרדה בין כל שדה. זה דורש פסיק (,) כברירת מחדל. בואו נשתמש באותו קובץ CSV המשמש בתרחיש הראשון ונעביר את הפסיק (',') כמפריד.

ייבוא ​​pyspark

מ-pyspark.sql ייבוא ​​SparkSession

linuxhint_spark_app = SparkSession.builder.appName( 'רמז לינוקס' ).getOrCreate()

# שימוש ב-read.options.csv() עם מפריד יחד עם כותרת

skills = linuxhint_spark_app.read. אפשרויות ( כּוֹתֶרֶת =נכון,מפריד= ',' ).csv( 'person_skill.csv' )

# הצג את DataFrame

skills.show()

תְפוּקָה:

קריאת קבצים מרובים

עד עכשיו, קראנו קובץ CSV בודד. בוא נראה איך לקרוא יותר מקובץ CSV אחד. בתרחיש זה, השורות במספר קבצים מצורפות ב-PySpark DataFrame יחיד. אנחנו רק צריכים להעביר את שמות הקבצים ברשימה בתוך השיטה.

דוגמא:

קבל את קובצי ה-CSV הבאים בשם 'person_skill.csv' ו-'person_skill2.csv' עם הנתונים הבאים:


קרא את שני קבצי ה-CSV הללו ואחסן אותם ב-PySpark DataFrame יחיד.

ייבוא ​​pyspark

מ-pyspark.sql ייבוא ​​SparkSession

linuxhint_spark_app = SparkSession.builder.appName( 'רמז לינוקס' ).getOrCreate()

# טען 2 קובצי csv בשם - person_skill.csv ו-person_skill2.csv לתוך מיומנויות עם תוויות עמודות עם כותרת

skills = linuxhint_spark_app.read.csv([ 'person_skill.csv' , 'person_skill2.csv' ],sep= ',' , כּוֹתֶרֶת =נכון)

skills.show()

תְפוּקָה:

הֶסבֵּר:

ה-CSV הראשון מחזיק 6 רשומות וה-CSV השני מחזיק 3 רשומות. אנו יכולים לראות שה-CSV הראשון נטען ל-DataFrame ראשון. לאחר מכן, ה-CSV השני נטען. לבסוף, PySpark DataFrame מחזיק ב-9 רשומות.

סיכום

קריאת ה-CSV לתוך PySpark DataFrame היא די פשוטה עם שיטת pyspark.sql.DataFrameReader.csv() . ניתן להעביר את פרמטרי הכותרת והמפריד לשיטה זו על מנת לציין את העמודות והפורמט. PySpark תומך גם בקריאת קבצי CSV מרובים בו-זמנית עם השיטות המסופקות יחד עם האפשרויות שלהן. במאמר זה ראינו את הדוגמאות על ידי בחינת אפשרויות שונות. כמו כן, ראינו שתי דרכים להעביר את האפשרויות לשיטה.