【问题标题】:How to use matplotlib to plot pyspark sql results如何使用 matplotlib 绘制 pyspark sql 结果
【发布时间】:2017-12-13 16:07:23
【问题描述】:

我是 pyspark 的新手。我想使用 matplotlib 绘制结果,但不确定要使用哪个函数。我搜索了一种将sql结果转换为pandas然后使用plot的方法。

【问题讨论】:

  • 嗨团队我找到了解决方案。我将 sql 数据框转换为 pandas 数据框,然后我能够绘制图表。下面是示例代码。

标签: python pandas matplotlib pyspark-sql


【解决方案1】:

我已经找到了解决方案。我将 sql 数据框转换为 pandas 数据框,然后我能够绘制图表。下面是示例代码。来自

pyspark.sql import Row
from pyspark.sql import HiveContext
import pyspark
from IPython.display import display
import matplotlib
import matplotlib.pyplot as plt
%matplotlib inline 
sc = pyspark.SparkContext()
sqlContext = HiveContext(sc)
test_list = [(1, 'hasan'),(2, 'nana'),(3, 'dad'),(4, 'mon')]
rdd = sc.parallelize(test_list)
people = rdd.map(lambda x: Row(id=int(x[0]), name=x[1]))
schemaPeople = sqlContext.createDataFrame(people)
# Register it as a temp table
sqlContext.registerDataFrameAsTable(schemaPeople, "test_table")
df1=sqlContext.sql("Select * from test_table")
pdf1=df1.toPandas()
pdf1.plot(kind='barh',x='name',y='id',colormap='winter_r')

【讨论】:

  • 如果数据太大,如果 Pandas 不支持更大的数据,那我们该怎么办?
【解决方案2】:

对于小数据,您可以在 pyspark DataFrame 上使用 .select().collect()collect 将给出一个pyspark.sql.types.Row 的python 列表,可以对其进行索引。从那里你可以在没有 Pandas 的情况下使用 matplotlib 进行绘图,但是使用带有 df.toPandas() 的 Pandas 数据框可能更容易。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-02-11
    • 2023-03-25
    • 1970-01-01
    • 2016-01-27
    • 2019-03-08
    • 2017-11-11
    • 2019-12-27
    • 2018-09-06
    相关资源
    最近更新 更多