การแสดงผลข้อมูลใน PySpark ด้วย DataFrames

Big Data Fundamentals with PySpark

Upendra Devisetty

Science Analyst, CyVerse

การแสดงผลข้อมูลคืออะไร?

  • การแสดงผลข้อมูล คือการนำเสนอข้อมูลในรูปแบบกราฟหรือแผนภูมิ

  • เครื่องมือพล็อตกราฟ open source สำหรับ Python:

    • Matplotlib, Seaborn, Bokeh เป็นต้น
  • การพล็อตกราฟจาก PySpark DataFrames ทำได้ 3 วิธี

    • ไลบรารี pyspark_dist_explore

    • toPandas()

    • ไลบรารี HandySpark

Big Data Fundamentals with PySpark

การแสดงผลข้อมูลด้วย Pyspark_dist_explore

  • ไลบรารี Pyspark_dist_explore ช่วยให้เห็นภาพรวมของ DataFrames ได้อย่างรวดเร็ว

  • ฟังก์ชันที่มีให้ใช้งาน 3 ฟังก์ชัน: hist(), distplot() และ pandas_histogram()

test_df = spark.read.csv("test.csv", header=True, inferSchema=True)
test_df_age = test_df.select('Age')
hist(test_df_age, bins=20, color="red")
Big Data Fundamentals with PySpark

การใช้ Pandas พล็อตกราฟจาก DataFrames

  • การสร้างแผนภูมิจาก pandas DataFrames ทำได้ง่าย
test_df = spark.read.csv("test.csv", header=True, inferSchema=True)
test_df_sample_pandas = test_df.toPandas()
test_df_sample_pandas.hist('Age')
  • หมายเหตุ: เมื่อข้อมูลมีขนาดใหญ่ ไม่แนะนำให้ใช้ toPandas()
Big Data Fundamentals with PySpark

Pandas DataFrame vs PySpark DataFrame

  • Pandas DataFrames เก็บข้อมูลในหน่วยความจำบนเซิร์ฟเวอร์เดียว ส่วน PySpark ประมวลผลแบบขนาน

  • Pandas แสดงผลทันทีเมื่อมีการดำเนินการ ขณะที่ PySpark DataFrame ใช้ lazy evaluation

  • Pandas DataFrame เป็น mutable ส่วน PySpark DataFrames เป็น immutable

  • Pandas API รองรับการดำเนินการมากกว่า PySpark DataFrame API

Big Data Fundamentals with PySpark

การแสดงผลข้อมูลด้วย HandySpark

  • HandySpark เป็นแพ็กเกจที่ออกแบบมาเพื่อยกระดับประสบการณ์การใช้งาน PySpark
    • ดึงข้อมูลได้ง่าย
    • ยังคงการประมวลผลแบบกระจาย
test_df = spark.read.csv('test.csv', header=True, inferSchema=True)
hdf = test_df.toHandy()
hdf.cols["Age"].hist()
Big Data Fundamentals with PySpark

มาแสดงผล DataFrames กัน

Big Data Fundamentals with PySpark

Preparing Video For Download...