头图

  要开发Spark Streaming应用程序,核心是通过StreamingContext创建DStream。因此DStream对象就是Spark Streaming中最核心的对象。DStream的全称是Discretized Stream,翻译成中文是离散流。它是Spark Streaming对流式数据的基本数据抽象,或者说是Spark Streaming的数据模型。DStream的核心是通过时间的采用间隔将连续的数据流转换成是一系列不连续的RDD,在由Transformation进行转换,从而达到处理流式数据的目的。因此从表现形式上看,DStream是由一系列连续的RDD组成,因此DStream也就具备了RDD的特性。
  视频讲解如下:
https://www.bilibili.com/video/BV1eb421H7t8/?aid=1805727068&c...
  以上面开发的MyNetworkWordCount程序为例,StreamingContext将每个3秒采样一次流式数据生成对应的RDD,其生成RDD的过程如下图所示。
在这里插入图片描述

  通过上图中可以看出DStream的表现形式其实就是RDD,因此操作DStream和操作RDD的本质其实是一样的。由于DStream是由一系列离散的RDD组成,因此Spark Streaming的其实是一个小批的处理模型,本质上依然还是一个批处理的离线计算。


赵渝强老师
33 声望12 粉丝

20年以上的IT行业从业经历,清华大学计算机软件工程专业毕业,京东大学大数据学院院长,Oracle中国有限公司高级技术顾问;曾在BEA、甲骨文、摩托罗拉等世界500强公司担任高级软件架构师或咨询顾问等要职,精通大...