การจัดกลุ่มและการรวมข้อมูล II
นอกจากเมธอดของ GroupedData ที่ได้เรียนมาแล้ว ยังมีเมธอด .agg() อีกด้วย
เมธอดนี้ช่วยให้สามารถส่ง expression ของคอลัมน์แบบ aggregate ที่ใช้ฟังก์ชัน aggregate ใด ๆ จาก submodule pyspark.sql.functions ได้
Submodule นี้มีฟังก์ชันที่มีประโยชน์มากมาย เช่น การคำนวณค่าเบี่ยงเบนมาตรฐาน ฟังก์ชัน aggregation ทั้งหมดใน submodule นี้รับชื่อคอลัมน์จากตาราง GroupedData
ขอเตือนว่า SparkSession ชื่อ spark และ Spark DataFrame ชื่อ flights มีอยู่ใน workspace ของคุณแล้ว รวมถึง DataFrame ที่จัดกลุ่มไว้จากแบบฝึกหัดก่อนหน้าด้วย
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
พื้นฐาน PySpark
คำแนะนำการฝึกหัด
- Import submodule
pyspark.sql.functionsโดยใช้ชื่อย่อว่าF - สร้างตาราง
GroupedDataชื่อby_month_destโดยจัดกลุ่มตามคอลัมน์monthและdestพร้อมกัน โดยส่งชื่อคอลัมน์ทั้งสองเป็น argument แยกกัน - ใช้เมธอด
.avg()บน DataFrameby_month_destเพื่อหาค่าเฉลี่ยของdep_delayในแต่ละเดือนสำหรับแต่ละปลายทาง - หาค่าเบี่ยงเบนมาตรฐานของ
dep_delayโดยใช้เมธอด.agg()ร่วมกับฟังก์ชันF.stddev()
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Import pyspark.sql.functions as F
import ____ as F
# Group by month and dest
by_month_dest = flights.groupBy(____)
# Average departure delay by month and destination
by_month_dest.____.show()
# Standard deviation of departure delay
by_month_dest.agg(F.____(____)).show()