微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PySpark:在条形图中使用 TransformedDStream

如何解决PySpark:在条形图中使用 TransformedDStream

我从 Kafak 消费了一些事件,数据如下所示:

-------------------------------------------
Time: 2020-12-21 21:52:58
-------------------------------------------
150.0

-------------------------------------------
Time: 2020-12-21 21:53:00
-------------------------------------------
155.0

-------------------------------------------
Time: 2020-12-21 21:53:02
-------------------------------------------
160.0

生成日志的代码如下所示:

sc = SparkContext(appName='Python Streaming')

ssc = StreamingContext(sc,1) 
ssc.checkpoint("abc")
# create the stream
kvs = KafkaUtils.createStream(ssc,\
          'XXXX:YYYY',\
          'streaming-consumer',\
          {'topic':1})

windows=kvs.window(10,2).map(lambda x: json.loads(x[1])['val'])

#here the avgs are created    
avg=windows.map(lambda x:(x,1)).reduce(lambda x,y:(x[0]+y[0],x[1]+y[1])).map(lambda x:x[0]/x[1])

#creates the log shown above
avg.pprint()

现在,我想要一个微小的(实时)条形图可视化。我通过在 avg=windows.map(lambda x:(x,x[1]+y[1])).map(lambda x:x[0]/x[1]) 之后添加以下两行来尝试这样的事情 - 但是,它不起作用(情节未更新):

avg.foreachRDD(lambda x:myList.append(x.collect()))

sns.barplot(x=myList[-1])

可视化此类流数据的最简单方法是什么?

我正在使用 juypiter notebook 和 python3

解决方法

我认为你应该使用这个数据流 -

源 Kafka 主题 -> 火花流消费者 -> 一些数据库(如 -influx db) -> graphana

仅仅 jupyter notebook 和 python 不足以实现 Spark 流的实时可视化

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。