在spark的一开篇(可以见我的spark(1)这篇博客),我们就谈到了sparkstreaming可以快速的处理数据流。 我们可以从sparkstreaming处理新的流式数据再传给sparksql进行计算,或者spark生态中的MLlib去进行数据的实时更新进行机器学习等。 类比于spark-core和sparksql,写sparkstreaming代码也要创建自己的上下文Streaming Context(通过spark context来获取streaming context,并且还要指定一个时间间隔),通过Streaming Context获取到的数据可以称为DStreams模型,如果一个Streaming Context已经开启,那么就不允许新的DStream建立,并且当Streaming Context停止以后,就不允许重新启动,DStreams模型是由一串连续的RDD构成,每个RDD都有前面定义的时间间隔内的数据,所以操作DStreams里的数据其实也是操作RDD。 处理DSream的逻辑一定要在开启Streaming Context之前写完,一旦开启就不能添加新的逻辑方式。
我们在python中写好如下代码:
在linux下开启10008端口服务
随便输入一些字符串观察pycharm中的结果:
可以见到,数据流进来并被spark streaming处理