PySpark RDD可视化

PySpark RDD还没有任何绘图功能。如果想绘制一些内容,可以将数据从SparkContext中取出并放入“本地”Python会话中,在那里可以使用Python的任意一个绘图库来处理它。对于RDD,调用.collect()方法,将数据返回到driver再绘制。

请看下面的示例。

from pyspark.sql import SparkSession
import random
import matplotlib
import matplotlib.pyplot as plt

# 构建SparkSession和SparkContext实例
spark = SparkSession.builder \
   .master("spark://xueai8:7077") \
   .appName("pyspark rdd demo") \
   .getOrCreate()

sc = spark.sparkContext

# 创建一个包含100个随机数的RDD
x = [random.normalvariate(0,1) for i in range(100)]
rdd = sc.parallelize(x)

# 绘制RDD中的数据
num_bins = 50
n, bins, patches = plt.hist(rdd.collect(), num_bins, density=1, facecolor='green', alpha=0.5)

执行以上代码,执行结果如下所示:


《Spark原理深入与编程实战》