pyspark matplotlib 与 Zeppelin 的集成

问题描述

我正在尝试在 Zeppelin 笔记本中使用 pyspark 绘制直方图。这是我迄今为止尝试过的,

%pyspark

import matplotlib.pyplot as plt
import pandas
...
x=dateDF.toPandas()["year(CAST(_c0 AS DATE))"].values.tolist()
y=dateDF.toPandas()["count(year(CAST(_c0 AS DATE)))"].values.tolist()
plt.plot(x,y)
plt.show()

代码运行没有错误,但这并没有给出预期的情节。所以我用谷歌搜索并找到了这个documantation

enter image description here

据此,我尝试如下启用角度标志,

x=dateDF.toPandas()["year(CAST(_c0 AS DATE))"].values.tolist()
y=dateDF.toPandas()["count(year(CAST(_c0 AS DATE)))"].values.tolist()
plt.close()
z.configure_mpl(angular=True,close=False)
plt.plot(x,y)
plt.show()

但现在我收到一个名为 No module named 'mpl_config'错误,我不知道如何在没有这个的情况下启用 angular。如果您能建议如何解决此问题,将非常感谢

解决方法

经过一段时间的挣扎后,我注意到这是 Zepplien 笔记本上的一个主要 Bug,由 @Ruslan Dautkhanov 于 2020 年 11 月标记。据他介绍,

mpl_config 是 Zeppelin 核心的一部分。 旧的 Python 解释器在这里手动复制它 https://github.com/apache/zeppelin/blob/0d746fa2e2787a661db70d74035120ae3516ace3/python/src/main/java/org/apache/zeppelin/python/PythonInterpreter.java#L179

但是新的 IPythonInterpeter 不会这样做。

我希望这会在将来解决并保留问题以供将来参考

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...