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’,…],ตัวเลือก…)
นอกจากนี้ยังสามารถแยกตัวเลือกและชื่อไฟล์ได้อีกด้วย
ไฟล์เดียว – spark_app.read.options(ตัวเลือก…).csv('file.csv')
หลายไฟล์ – spark_app.read.options(ตัวเลือก…).csv([‘file1.csv’,’file2.csv’,…])
ติดตั้งไลบรารี PySpark ก่อนดำเนินการตามตัวอย่างต่อไปนี้
pip ติดตั้ง pyspark
หลังจากติดตั้งสำเร็จ คุณจะเห็นผลลัพธ์ดังต่อไปนี้:
สถานการณ์ที่ 1: การอ่านส่วนหัวของไฟล์ CSV
มาสร้างไฟล์ CSV ชื่อ “person_skill.csv” ด้วย 5 ระเบียนที่แสดงต่อไปนี้ และโหลดลงใน PySpark DataFrame:
พารามิเตอร์ส่วนหัวใช้เพื่อระบุชื่อคอลัมน์ใน PySpark DataFrame ใช้ค่าบูลีน หากเป็น 'จริง' ชื่อคอลัมน์จริงที่มีอยู่ในไฟล์ CSV จะถูกระบุใน DataFrame มิฉะนั้น จะระบุ c0, c1, c2... และชื่อคอลัมน์จริงจะเป็นแถว วิธีปฏิบัติที่ดีที่สุดคือตั้งค่าพารามิเตอร์ส่วนหัวให้เป็นจริง
ตัวอย่างที่ 1: ส่วนหัว = จริง
นำเข้า pysparkจาก pyspark.sql นำเข้า SparkSession
linuxhint_spark_app = SparkSession.builder.appName( 'คำแนะนำลินุกซ์' ).getOrCreate()
# โหลด csv ชื่อ - person_skill.csv ลงในทักษะที่มีป้ายกำกับคอลัมน์พร้อมส่วนหัว
ทักษะ = linuxhint_spark_app.read.csv( 'person_skill.csv' , หัวข้อ =จริง)
# แสดง DataFrame
ทักษะการแสดง ()
เอาท์พุต:
คำอธิบาย:
เราจะเห็นว่า PySpark DataFrame ถูกสร้างขึ้นจากไฟล์ CSV พร้อมคอลัมน์และแถวที่ระบุ
ใช้คำสั่งต่อไปนี้เพื่อตรวจสอบคอลัมน์:
ทักษะ.คอลัมน์
ตัวอย่างที่ 2: ส่วนหัว = เท็จ
นำเข้า pysparkจาก pyspark.sql นำเข้า SparkSession
linuxhint_spark_app = SparkSession.builder.appName( 'คำแนะนำลินุกซ์' ).getOrCreate()
# โหลด csv ชื่อ - person_skill.csv ลงในทักษะที่มีป้ายกำกับคอลัมน์โดยไม่มีส่วนหัว
ทักษะ = linuxhint_spark_app.read.csv( 'person_skill.csv' , หัวข้อ =เท็จ)
# แสดง DataFrame
ทักษะการแสดง ()
เอาท์พุต:
คำอธิบาย:
เราจะเห็นว่า PySpark DataFrame ถูกสร้างขึ้นจากไฟล์ CSV โดยไม่มีคอลัมน์อยู่
นอกจากนี้ คอลัมน์ที่มีอยู่จะถูกจัดเก็บเป็นแถวใน PySpark DataFrame
ทักษะ.คอลัมน์
การใช้ Read.options.csv()
ตอนนี้ เราอ่านไฟล์ CSV โดยใช้วิธี read.options.csv() ที่นี่ เราจำเป็นต้องส่งตัวเลือกเช่นตัวคั่น ส่วนหัว ฯลฯ ในตัวเลือกเป็นอาร์กิวเมนต์และชื่อไฟล์ใน csv() ส่งต่อพารามิเตอร์ส่วนหัวโดยตั้งค่าเป็น 'จริง'
สถานการณ์ที่ 1:
นำเข้า pysparkจาก pyspark.sql นำเข้า SparkSession
linuxhint_spark_app = SparkSession.builder.appName( 'คำแนะนำลินุกซ์' ).getOrCreate()
# การใช้ read.options.csv()
ทักษะ = linuxhint_spark_app.read ตัวเลือก ( หัวข้อ =จริง).csv( 'person_skill.csv' )
# แสดง DataFrame
ทักษะการแสดง ()
เอาท์พุต:
สถานการณ์ที่ 2: การอ่านตัวคั่นไฟล์ CSV
พารามิเตอร์ตัวคั่นใช้อักขระที่ใช้เพื่อแยกแต่ละฟิลด์ ใช้เครื่องหมายจุลภาค (,) เป็นค่าเริ่มต้น ลองใช้ไฟล์ CSV เดียวกับที่ใช้ในสถานการณ์แรก และส่งเครื่องหมายจุลภาค (',') เป็นตัวคั่น
นำเข้า pysparkจาก pyspark.sql นำเข้า SparkSession
linuxhint_spark_app = SparkSession.builder.appName( 'คำแนะนำลินุกซ์' ).getOrCreate()
# ใช้ read.options.csv() กับตัวคั่นพร้อมกับส่วนหัว
ทักษะ = linuxhint_spark_app.read ตัวเลือก ( หัวข้อ =จริง,ตัวคั่น= ',' ).csv( 'person_skill.csv' )
# แสดง DataFrame
ทักษะการแสดง ()
เอาท์พุต:
อ่านหลายไฟล์
จนถึงตอนนี้ เราอ่านไฟล์ 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()
# โหลดไฟล์ csv 2 ไฟล์ชื่อ - person_skill.csv และ person_skill2.csv ลงในทักษะที่มีป้ายกำกับคอลัมน์พร้อมส่วนหัว
ทักษะ = linuxhint_spark_app.read.csv([ 'person_skill.csv' , 'person_skill2.csv' ],กันยายน= ',' , หัวข้อ =จริง)
ทักษะการแสดง ()
เอาท์พุต:
คำอธิบาย:
CSV แรกมี 6 ระเบียน และ CSV ที่สองมี 3 ระเบียน เราจะเห็นว่า CSV แรกถูกโหลดลงใน DataFrame ก่อน จากนั้น CSV ที่สองจะถูกโหลด สุดท้าย PySpark DataFrame เก็บข้อมูลได้ 9 รายการ
บทสรุป
การอ่าน CSV ใน PySpark DataFrame นั้นค่อนข้างง่ายด้วยเมธอด pyspark.sql.DataFrameReader.csv() สามารถส่งพารามิเตอร์ส่วนหัวและตัวคั่นไปยังวิธีนี้เพื่อระบุคอลัมน์และรูปแบบได้ PySpark ยังรองรับการอ่านไฟล์ CSV หลายไฟล์พร้อมกันด้วยวิธีการที่ให้มาพร้อมกับตัวเลือก ในบทความนี้ เราได้เห็นตัวอย่างโดยพิจารณาจากตัวเลือกต่างๆ นอกจากนี้ เราได้เห็นสองวิธีในการส่งตัวเลือกไปยังวิธีการ