美文网首页
结构化流编程指导

结构化流编程指导

作者: 隔壁的王姓青年 | 来源:发表于2020-07-16 15:42 被阅读0次

概述

结构化流是构建在Spark SQL引擎上的可伸缩和容错的流处理引擎,你可以用处理静态数据相同的方式来进行流式数据的批量计算,Spark SQL引擎随着流数据不断的到达增量地,持续不断的更新最终结果。你可以在Scala、Java、Python或R中的使用 Dataset/DataFrame API来进行流数据的聚合、基于事件时间的窗口计算、连表操作(join)等等。所有的计算都是在同一个优化过的Spark SQL引擎上执行的。最后,系统通过checkpointing 以及 Write-Ahead Logs来确保端到端精确一次的容错保证。简而言之,结构化的流引擎提供了快速、可伸缩、容错、无需用户处理的端到端精确一次的流式计算。

在内部默认情况下使用微批处理引擎来处理结构化流的查询,它将数据流分解为一系列小的批处理作业,从而实现低至100毫秒的端到端延迟和精确的一次容错保证。然而,从Spark 2.3开始,我们引入了一种新的低延迟处理模式,称为Continuous Processing,它可以在at-least-once的保证下实现低至1毫秒的端到端延迟。不需要更改Dataset/DataFrame的运算,你可以根据应用的需求选择使用哪种模式。

在本指南中,我们将带您了解编程模型和APIs。我们主要使用默认的微批处理模型来解释概念,稍后再讨论Continuous Processing模型。首先让我们从一个简单的结构化流式查询示例开始—流式单词计数。

简单示例

假设你想维护从数据服务器通过tcp服务传输过来的文本的字数统计,让我们来看看如何用结构化流来实现这个功能。首先我们需要导入必要的类库然后创建一个本地的SparkSession,它是与spark相关的所有功能的起点。

相关文章

  • 结构化流编程指导

    概述 结构化流是构建在Spark SQL引擎上的可伸缩和容错的流处理引擎,你可以用处理静态数据相同的方式来进行流式...

  • 编程范式

    冯·诺伊曼体系,数据流机,规约机 命令式编程,结构化编程 过程式编程是引入了过程,函数或子程序的编程的命令式编程。...

  • ThoughtWorks暑期特训——<任务1~3>学习总结

    结构化编程 结构化编程是一种编程典范。它采用子程序、程式码区块(英语:block structures)、for循...

  • 【Linux shell学习笔记-15-gawk进阶4】

    4.结构化命令 gawk编程语言支持常见的结构化编程命令。 4.1 if语句 gawk编程语言支持标准的if-th...

  • structured-streaming

    编程模型 结构化数据流中的关键思想是将实时数据流视为一个不断附加的表。这导致新的流处理模型与批处理模型非常相似。您...

  • 编程范式的演进:增加约束(读<Clean architec

    目前为止只存在三种编程范式(可能也不会有第四种了),结构化编程、面向对象编程 和 函数式编程。 结构化编程...

  • 算法初级(排序算法)

    结构化编程&伪代码 说到排序算法,就要先讲一下什么是结构化编程,总结一下来说,结构化编程有以下特点:1.一行一行执...

  • 编程范式

    结构化编程 结构化编程对程序控制权的直接转移进行了限制和规范 面向对象编程 面向对象编程对程序控制权的间接转移进行...

  • 编程范式

    结构化编程 结构化编程采用顺序结构,分支结构,循环结构代替goto语句,它对程序控制权的直接转移进行了限制和规范。...

  • 函数式编程及Lamda

    函数式编程 定义 函数式编程(funcational programming)属于结构化编程的一种。主要思想是把运...

网友评论

      本文标题:结构化流编程指导

      本文链接:https://www.haomeiwen.com/subject/pwgphktx.html