การจัดกลุ่มและการรวมข้อมูล I
หนึ่งในสิ่งที่ทำให้การรวมข้อมูลมีประสิทธิภาพมากขึ้นคือการแบ่งกลุ่ม PySpark มีคลาสที่ออกแบบมาเพื่อจัดการกับ DataFrame แบบกลุ่มโดยเฉพาะ ได้แก่ pyspark.sql.GroupedData ซึ่งได้เห็นไปแล้วในสองแบบฝึกหัดก่อนหน้า
ได้เรียนรู้วิธีสร้าง DataFrame แบบกลุ่มโดยเรียกเมธอด .groupBy() บน DataFrame โดยไม่ต้องระบุอาร์กิวเมนต์
คราวนี้จะเห็นว่าเมื่อส่งชื่อคอลัมน์หนึ่งคอลัมน์หรือมากกว่าใน DataFrame ไปยังเมธอด .groupBy() เมธอดสำหรับรวมข้อมูลจะทำงานเหมือนกับการใช้คำสั่ง GROUP BY ใน SQL
สังเกตว่า SparkSession ชื่อ spark ถูกเตรียมไว้ใน workspace แล้ว พร้อมกับ Spark DataFrame flights
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
พื้นฐาน PySpark
คำแนะนำการฝึกหัด
- สร้าง DataFrame ชื่อ
by_planeโดยจัดกลุ่มตามคอลัมน์tailnum - ใช้เมธอด
.count()โดยไม่ต้องระบุอาร์กิวเมนต์ เพื่อนับจำนวนเที่ยวบินของเครื่องบินแต่ละลำ - สร้าง DataFrame ชื่อ
by_originโดยจัดกลุ่มตามคอลัมน์origin - คำนวณค่า
.avg()ของคอลัมน์air_timeเพื่อหาระยะเวลาบินเฉลี่ยจากสนามบิน PDX และ SEA
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Group by tailnum
by_plane = flights.groupBy("____")
# Number of flights each plane made
by_plane.____.show()
# Group by origin
by_origin = flights.groupBy("____")
# Average duration of flights from PDX and SEA
by_origin.avg("____").show()