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 מרובים בו-זמנית עם השיטות המסופקות יחד עם האפשרויות שלהן. במאמר זה ראינו את הדוגמאות על ידי בחינת אפשרויות שונות. כמו כן, ראינו שתי דרכים להעביר את האפשרויות לשיטה.