如何绘制Spark Dataframe而不将其转换为Pandas

lxkprmvk  于 2022-12-09  发布在  Spark
关注(0)|答案(4)|浏览(194)

有没有办法在不将Spark Dataframe 转换为Pandas的情况下绘制Spark Dataframe 中的信息?
做了一些网上研究,但似乎找不到一个方法。我需要自动保存这些图为.pdf,所以使用内置的可视化工具从数据库将无法工作。
现在,这就是我正在做的(作为一个例子):

# df = some Spark data frame 
df = df.toPandas()
df.plot()
display(plt.show())

我想生成线图,直方图,条形图和散点图,而不需要将我的 Dataframe 转换为Pandas Dataframe 。谢谢!

pkwftd7m

pkwftd7m1#

显示功能仅在databricks内核笔记本中可用,在spark中不可用

axzmvihb

axzmvihb2#

Just to use display(<dataframe-name>) function with a Spark dataframe as the offical document Visualizations said as below.

Then, to select the plot type and change its options as the figure below to show a chart with spark dataframe directly.

If you want to show the same chart as the pandas dataframe plot of yours, your current way is the only way.

ubof19bj

ubof19bj3#

如果spark Dataframe “df”(* 如问题中所问 *)的类型为 “pyspark.pandas.frame.DataFrame',则尝试以下操作:

# Plot spark dataframe
df.column_name.plot.pie()

其中 column_name 是spark Dataframe “df”中的一列。
您可以尝试通过以下方法查找“df”的类型

type(df)

还有其他功能,如

  • pyspark.Pandas.数据框.绘图.线条 *
  • pyspark.pandas.DataFrame.plot.bar *
  • pyspark.Pandas.数据框.绘图.散布图 *

这可以在apache spark文档中找到:https://spark.apache.org/docs/3.2.1/api/python/reference/pyspark.pandas/api/pyspark.pandas.DataFrame.plot.bar.html
如果spark Dataframe 'df'的类型为*'pyspark.sql. dataframe.DataFrame'*,请尝试以下操作:

# Import pyspark.pandas
import pyspark.pandas as ps

# Convert pyspark.sql.dataframe.DataFrame to pyspark.pandas.frame.DataFrame
temp_df = ps.DataFrame( df ).set_index('column_name')

# Plot spark dataframe
temp_df.column_name.plot.pie()

**注:**可能还有其他更好的方法。如果有,请在评论中建议他们。

bcs8qyzn

bcs8qyzn4#

您可以收集数据,然后使用matplotlib将其绘制出来。从那里,您可以轻松地将输出保存为pdf格式。一个在python中收集数据的快速示例:

spark.sql('SELECT * FROM <your table>').collect()

相关问题