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)
执行以上代码,执行结果如下所示: