结构化流
神之凝视
这个作者很懒,什么都没留下…
展开
-
Spark结构化流编程指南【基础信息】
一.概述结构化流是基于Spark SQL引擎构建的可伸缩且容错的流处理引擎。可以像对静态数据进行批处理计算一样来表示流计算。当流数据继续到达时,Spark SQL引擎将负责逐步递增地运行它并更新最终结果。可以在Scala,Java,Python或R中使用Dataset / DataFrame API来表示流聚合,事件时间窗口,流到批处理联接等。计算在同一优化的Spark SQL引擎上执行。最后,系统通过检查点和预写日志来确保端到端的一次容错保证。简而言之,结构化流提供了快速,可扩展,容错,端到端的精确一次原创 2020-05-25 21:15:37 · 296 阅读 · 0 评论 -
Spark结构化流之事件时间窗口操作
滑动事件时间窗口上的聚合对于结构化流而言非常简单,并且与分组聚合非常相似。在分组聚合中,用户指定的分组列中为每个唯一值维护聚合值(例如,计数)。在基于窗口的聚合的情况下,行事件时间所属的每个窗口都会维护聚合值。流现在包含行以及生成行的时间。而不是运行字数统计,我们希望在10分钟的窗口内对字数进行计数,每5分钟更新一次。也就是说,在10分钟窗口12:00-12:10、12:05-12:15、12:10-12:20等之间接收的单词中的单词计数。请注意,12:00-12:10表示数据12:00之后但12:10之原创 2020-06-02 19:29:28 · 1010 阅读 · 0 评论 -
Spark结构化流之join
一.join操作结构化流支持将流数据集/数据帧与静态数据集/数据帧以及另一个流数据集/数据帧连接在一起。流连接的结果是增量生成的,类似于流聚合的结果。请注意,在所有受支持的联接类型中,使用流Dataset/DataFrame进行联接的结果将与使用包含流中相同数据的静态Dataset/DataFrame进行联接的结果完全相同。二.流静态联接自从Spark 2.0引入以来,结构化流已支持流和静态DataFrame / Dataset之间的联接(内部联接和某种类型的外部联接)。如下:val staticD原创 2020-06-06 21:31:05 · 647 阅读 · 0 评论 -
Spark结构化流之水印
一.处理后期数据和加水印现在考虑如果存在事件迟到了应用程序会发生什么。例如,应用程序在12:11接收在12:04(即事件时间)生成的单词。应用程序应使用12:04而不是12:11来更新窗口的旧计数12:00 - 12:10。这在基于窗口的分组中很自然地发生,结构化流可以长时间保持部分聚合的中间状态,以便后期数据可以正确更新旧窗口的聚合,如下所示。但是,要连续几天运行此查询,系统必须限制其累积的中间内存状态量。这意味着系统需要知道何时可以从内存中删除旧状态聚合,因为应用程序将不再接收该聚合的最新数据。为原创 2020-06-06 16:13:26 · 2280 阅读 · 0 评论