我有一个pyspark Dataframe (pyspark.sql.dataframe.dataframe)。我想在箱线图中绘制数值列以检测异常值。
我首先只选择数字列,其中:
numeric_columns = [item[0] for item in df.dtypes if item[1].startswith('float')]
我试着使用plotly,但后来我发现首先我需要转换成一个Pandas数据框架。所以,我做了:
df_pd = df.toPandas()
fig = px.box(df_pd[numeric_columns])
fig.show()
出现错误:"命令结果大小超出限制:超过20971520字节(当前= 20973190)"
我想这个数据集太大了,不适合Pandas。你能帮帮我吗?有没有可能直接在pyspark Dataframe 中创建绘图?
谢谢你。
1条答案
按热度按时间kknvjkwl1#
首先,要小心
toPandas
。Spark用于“大数据”分析,例如当数据不在一台计算机上时。当你运行toPandas
时,你的数据会从集群收集到你运行Python进程的服务器上。其次,为了修复错误,需要正确配置Spark会话,需要将
driver.memory
和maxResultSize
参数设置为大于数据集看起来可能像是
第三,如果数据集大于本地处理能力,请使用采样