DStream和Seq [RDD]有什么区别?

时间:2019-03-03 10:09:43

标签: apache-spark spark-streaming

文档状态中DStream的定义,

  

离散流或DStream是Spark Streaming提供的基本抽象。它表示连续的数据流,可以是从源接收的输入数据流,也可以是通过转换输入流生成的已处理数据流。在内部,DStream由一系列连续的RDD表示,这是Spark对不变的分布式数据集的抽象。

问题是,是否将其表示为一系列RDD,我们可以制作RDD流并期望它与DStream类似吗?

如果有人可以通过代码示例帮助我理解这一点,那就太好了。

1 个答案:

答案 0 :(得分:2)

  

问题是,是否将其表示为一系列RDD,我们可以制作RDD流并期望它与DStream类似吗?

您是对的。 DStream在逻辑上是一系列RDD

火花流只是隐藏创建Seq[RDD]的过程,因此它不是您的工作,而是框架。

此外,Spark Streaming为您提供了更好得多的开发人员API,因此您可以将Seq[RDD]视为DStream,但是除了rdds.map(rdd => your code goes here)之外,您还可以简单地dstream.map(t => your code goes here)除了rddt的类型外没有什么不同。与DStream一起使用时,您已经比现在低了一个级别。