Trực quan hóa dữ liệu trong PySpark với DataFrame

Nền tảng Big Data với PySpark

Upendra Devisetty

Science Analyst, CyVerse

Trực quan hóa dữ liệu là gì?

  • Trực quan hóa dữ liệu là biểu diễn dữ liệu bằng đồ thị/biểu đồ

  • Công cụ vẽ mã nguồn mở hỗ trợ trong Python:

    • Matplotlib, Seaborn, Bokeh, v.v.
  • Vẽ đồ thị với PySpark DataFrame có 3 cách

    • Thư viện pyspark_dist_explore

    • toPandas()

    • Thư viện HandySpark

Nền tảng Big Data với PySpark

Trực quan hóa với Pyspark_dist_explore

  • Thư viện Pyspark_dist_explore cho cái nhìn nhanh về DataFrame

  • Hiện có 3 hàm: hist(), distplot(), và 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")
Nền tảng Big Data với PySpark

Dùng Pandas để vẽ DataFrame

  • Dễ tạo biểu đồ từ pandas DataFrame
test_df = spark.read.csv("test.csv", header=True, inferSchema=True)
test_df_sample_pandas = test_df.toPandas()
test_df_sample_pandas.hist('Age')
  • Lưu ý: Với dữ liệu lớn, không nên dùng toPandas()
Nền tảng Big Data với PySpark

Pandas DataFrame vs PySpark DataFrame

  • Pandas DataFrame nằm trong bộ nhớ, chạy trên một máy; PySpark chạy song song phân tán

  • Pandas tính toán ngay (eager); PySpark DataFrame đánh giá trễ (lazy)

  • Pandas DataFrame có thể thay đổi; PySpark DataFrame là bất biến

  • API Pandas hỗ trợ nhiều thao tác hơn API PySpark DataFrame

Nền tảng Big Data với PySpark

Trực quan hóa bằng HandySpark

  • HandySpark là gói cải thiện trải nghiệm dùng PySpark
    • Lấy dữ liệu dễ dàng
    • Giữ tính phân tán khi tính toán
test_df = spark.read.csv('test.csv', header=True, inferSchema=True)
hdf = test_df.toHandy()
hdf.cols["Age"].hist()
Nền tảng Big Data với PySpark

Cùng trực quan hóa DataFrame

Nền tảng Big Data với PySpark

Preparing Video For Download...