使用 PySpark 與 DataFrame 的資料視覺化

使用 PySpark 的 Big Data 基礎

Upendra Devisetty

Science Analyst, CyVerse

什麼是資料視覺化?

  • 資料視覺化是用圖表呈現資料的方法

  • Python 常用的開源繪圖工具:

    • Matplotlib、Seaborn、Bokeh 等
  • 用 PySpark DataFrame 繪圖可用三種方式

    • pyspark_dist_explore 函式庫

    • toPandas()

    • HandySpark 函式庫

使用 PySpark 的 Big Data 基礎

使用 Pyspark_dist_explore 做資料視覺化

  • Pyspark_dist_explore 函式庫可快速從 DataFrame 取得洞見

  • 目前提供三個函式: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")
使用 PySpark 的 Big Data 基礎

使用 Pandas 繪製 DataFrame 圖表

  • 從 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')
  • 注意:資料量很大時,不建議使用 toPandas()
使用 PySpark 的 Big Data 基礎

Pandas DataFrame vs PySpark DataFrame

  • Pandas DataFrame 為記憶體內、單機結構;PySpark 的運算則是平行化執行

  • Pandas 套用操作就會產生結果;PySpark DataFrame 採延遲評估

  • Pandas DataFrame 可變;PySpark DataFrame 不可變

  • Pandas API 支援的操作多於 PySpark DataFrame API

使用 PySpark 的 Big Data 基礎

使用 HandySpark 的視覺化方法

  • HandySpark 是為改善 PySpark 使用體驗而設計的套件
    • 便捷抓取資料
    • 保留分散式計算
test_df = spark.read.csv('test.csv', header=True, inferSchema=True)
hdf = test_df.toHandy()
hdf.cols["Age"].hist()
使用 PySpark 的 Big Data 基礎

一起來視覺化 DataFrame

使用 PySpark 的 Big Data 基礎

Preparing Video For Download...