使用 PySpark DataFrame 进行数据可视化

使用 PySpark 的大数据基础

Upendra Devisetty

Science Analyst, CyVerse

什么是数据可视化?

  • 数据可视化是用图表展示数据的方式

  • Python 中常用的开源绘图库:

    • Matplotlib、Seaborn、Bokeh 等
  • 用 PySpark DataFrame 作图有三种方法

    • pyspark_dist_explore 库

    • toPandas()

    • HandySpark 库

使用 PySpark 的大数据基础

使用 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 的大数据基础

使用 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 的大数据基础

Pandas DataFrame vs PySpark DataFrame

  • Pandas DataFrame 是单机内存结构;PySpark 的操作是并行执行

  • Pandas 立即计算并返回结果;PySpark DataFrame 使用惰性求值

  • Pandas DataFrame 可变;PySpark DataFrame 不可变

  • Pandas API 的功能多于 PySpark DataFrame API

使用 PySpark 的大数据基础

用 HandySpark 进行可视化

  • HandySpark 旨在提升 PySpark 的使用体验
    • 便捷取数
    • 保持分布式计算
test_df = spark.read.csv('test.csv', header=True, inferSchema=True)
hdf = test_df.toHandy()
hdf.cols["Age"].hist()
使用 PySpark 的大数据基础

让我们可视化 DataFrame

使用 PySpark 的大数据基础

Preparing Video For Download...