4-24日报

DStream

DStream:Discretized Stream,离散流,Spark Streaming提供的一种高级抽象,代表了一个持续不断的数据流;
DStream可以通过输入数据源来创建,比如Kafka、Flume,也可以通过对其他DStream应用高阶函数来创建,比如map、reduce、join、window;

  • DStream的内部,其实是一系列持续不断产生的RDD,RDD是Spark Core的核心抽象,即,不可变的,分布式的数据集;
    DStream中的每个RDD都包含了一个时间段内的数据;
    以下图为例,0-1这段时间的数据累积构成了RDD@time1,1-2这段时间的数据累积构成了RDD@time2,。。。
 
image.png
  • 对DStream应用的算子,其实在底层会被翻译为对DStream中每个RDD的操作;
    比如对一个DStream执行一个map操作,会产生一个新的DStream,其底层原理为,对输入DStream中的每个时间段的RDD,都应用一遍map操作,然后生成的RDD,即作为新的DStream中的那个时间段的一个RDD;
    底层的RDD的transformation操作,还是由Spark Core的计算引擎来实现的,Spark Streaming对Spark core进行了一层封装,隐藏了细节,然后对开发人员提供了方便易用的高层次API。
 


posted @ 2022-04-24 20:53  软工新人  阅读(13)  评论(0编辑  收藏  举报