如何在pyspark中建立直方图

Posted

技术标签:

【中文标题】如何在pyspark中建立直方图【英文标题】:How to build a histogram in pyspark 【发布时间】:2017-09-13 09:31:06 【问题描述】:

我有一个大的 pyspark 数据框,想要其中一列的直方图。

我能做到:

df.select.("col").rdd.flatMap(lambda x: x).histogram(100)

但这很慢,似乎将数据帧转换为 rdd,我什至不确定为什么需要 flatMap。

实现这一目标的最佳/最快方法是什么?

【问题讨论】:

您只需要flatMap 是您的列包含嵌套值。其他方式参考这个问题:***.com/questions/36043256/… 【参考方案1】:

将您的数据框转换为熊猫数据框

df_pd = df.toPandas()

然后使用,

%matplotlib inline
import matplotlib.pyplot as plt
df_pd.hist(column='column name')

这应该可以工作

【讨论】:

转换为 Pandas DataFrame 效率非常低,也不能保证在低内存环境下工作。

以上是关于如何在pyspark中建立直方图的主要内容,如果未能解决你的问题,请参考以下文章

绘制一个非常大的 pyspark 列的直方图

python 使用PySpark和NumPy的现成数据的直方图

pyspark matplotlib 与 Zeppelin 的集成

如何用excel做频数分布直方图和频数分布折线图

VFH视点特征直方图

如何在 matplotlib 直方图中选择 bin