0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Spark结构化流中的加水位线方法

汽车玩家 来源:今日头条 作者:闻数起舞 2020-05-03 17:28 次阅读

对于流处理引擎来说,处理延迟到达的事件是至关重要的功能。 解决这个问题的方法是加水位线的概念。 从Spark 2.1开始,结构化流API就支持它。

什么是水位线?

加水位线是一种有用的方法,可帮助流处理引擎处理延迟。 基本上,水印是一个阈值,用于指定系统等待延迟事件的时间。 如果到达事件位于水位线之内,它将用于更新查询。 否则,如果它早于水位线,它将被丢弃,并且流引擎不会对其进行进一步处理。

> Flooding watermarks

如何使用它?

自Spark 2.1起,水位线被引入到结构化流API中。 您可以通过将withWatermark-Operator添加到查询中来启用它:

withWatermark(eventTime:String,delayThreshold:String):数据集[T]

它需要两个参数,a)一个事件时间列(必须与聚合正在处理的列相同)和b)一个阈值,用于指定应处理多长时间的延迟数据(以事件时间为单位)。 然后,Spark将维持聚合状态,直到max eventTime — delayThreshold> T,其中max eventTime是引擎看到的最新事件时间,T是窗口的开始时间。 如果后期数据落入此阈值之内,则查询将最终得到更新(下图中的右图)。 否则,它将被丢弃,并且不会触发任何重新处理(下图中的左图)。

Spark结构化流中的加水位线方法

Spark结构化流中的加水位线方法

> Late donkey in structured word count: event dropped (left), event within watermark updates Window

值得一提的是,查询的输出模式必须设置为"追加"(默认)或"更新"。完全模式不能与设计中的水印结合使用,因为它需要所有 要保存的数据,用于将整个结果表输出到接收器

可以在这里找到如何在简单的Spark结构化流应用程序中使用该概念的快速演示-它是字数统计(对NLP进行了一些小的增强),还有其他:D

但是,为什么我要关心?

在分布式和联网的系统中,总会有中断的机会-节点故障,传感器丢失连接等等。 因此,不能保证数据将按创建顺序到达流处理引擎。 为了容错,因此有必要处理此类乱序数据。

为了解决此问题,必须保留聚合状态。 如果发生延迟事件,则可以重新处理查询。 但这意味着所有聚合的状态必须无限期地保持,这也导致内存使用量也无限期地增长。 除非系统具有无限的资源(即无限的预算),否则在现实世界中这是不切实际的。 因此,加水位线是一个有用的概念,可以通过设计约束系统并防止其在运行时爆炸。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • API
    API
    +关注

    关注

    2

    文章

    1383

    浏览量

    60993
  • SPARK
    +关注

    关注

    1

    文章

    99

    浏览量

    19731
收藏 人收藏

    评论

    相关推荐

    什么是结构化网络布线?结构化网络布线有哪些好处?

    在电缆领域,结构化网络布线这个术语经常被提及。人们将其用作流行语,但它的真正含义是什么?结构化布线到底是什么? 为了了解真正的含义,让我们看它的一些相关定义。 根据光纤协会的说法,结构化布线
    的头像 发表于 04-11 11:54 172次阅读

    结构化布线的好处多吗

    结构化布线是网络系统中的重要组成部分,因为它为数据传输提供了强大、可扩展且可靠的基础。通过遵守全球公认的标准,结构化布线可促进高速连接、简化故障排除并确保未来的可扩展性。考虑到这些优势,企业应优先
    的头像 发表于 04-07 11:15 133次阅读

    Spark基于DPU Snappy压缩算法的异构加速方案

    使 Spark 在某些工作负载方面表现得更加优越。换句话说,Spark 启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。Spark SQL是Spark的计算模
    的头像 发表于 03-26 17:06 211次阅读
    <b class='flag-5'>Spark</b>基于DPU Snappy压缩算法的异构加速方案

    基于DPU和HADOS-RACE加速Spark 3.x

    、Python、Java、Scala、R)等特性在大数据计算领域被广泛使用。其中,Spark SQL 是 Spark 生态系统中的一个重要组件,它允许用户以结构化数据的方式进行数据处理,提供了强大
    的头像 发表于 03-25 18:12 930次阅读
    基于DPU和HADOS-RACE加速<b class='flag-5'>Spark</b> 3.x

    CFD 设计利器:结构化和非结构化网格的组合使用

    在CFD的发展历史中,结构化网格出现最早,至今仍在使用。结构化网格有几个主要优点,如精度高、生成速度快、单元分布均匀。有些工具擅长绘制这类网格,例如CadenceFidelityAutomesh
    的头像 发表于 12-23 08:12 403次阅读
    CFD 设计利器:<b class='flag-5'>结构化</b>和非<b class='flag-5'>结构化</b>网格的组合使用

    使用关系数据库中的半结构化数据

    NoSQL革命已经进入了关系世界。您可能正在使用关系数据库,但仍必须查询和理解隐藏在文本列、JSON或 XML文档中的半结构化数据。
    的头像 发表于 12-20 10:46 273次阅读
    使用关系数据库中的半<b class='flag-5'>结构化</b>数据

    对与性能比较低的51单片机,结构化编程性能提升多少?

    对与性能比较低的51单片机,结构化编程性能提升多少
    发表于 10-26 06:21

    一种结构化道路环境的视觉导航系统详解

    根据结构化道路环境的特点提出了一种将边沿检测和道路环境知识相结合的机器视觉算法 , 并结合基于行为响应的路径规划方法和智能预瞄控制方法 , 实现了一套基本的机器人视觉导航系统 . 在自主机器人实验
    发表于 09-25 07:23

    使用结构化的PLC变量的工作原理

    要创建结构化的 PLC 变量,首先需要定义一个 PLC 数据类型 (UDT)。 并在该数据类型中声明所需的数据元素并指定它们的名称和数据类型。
    发表于 07-10 12:47 568次阅读
    使用<b class='flag-5'>结构化</b>的PLC变量的工作原理

    鱼缸自助补水器如何实现自动加水功能

    自动补水器通常用于水族馆,可以自动补水和换水。它具有液位控制准确方便的特点,无需随时检查鱼缸内的水位。 当长时间外出时,家中的鱼缸水位会下降,无人可以给鱼缸加水。这时可以使用自动补水器来解决问题
    的头像 发表于 07-01 14:01 1090次阅读
    鱼缸自助补水器如何实现自动<b class='flag-5'>加水</b>功能

    水族智能补水器是如何做到缺水加水满水即停的

    水族智能补水器是一种智能化的水族箱补水设备,它可以自动检测水族箱中的水位,当水位低于设定值时,自动加水,直到水位达到设定值后停止加水。那么,
    的头像 发表于 06-17 15:17 443次阅读
    水族智能补水器是如何做到缺水<b class='flag-5'>加水</b>满水即停的

    西门子博途S7-SCL结构化控制语言编程

    最近几年结构化文本编程已经越来越盛行,使用结构化文本语言编程的人数已经超过了使用梯形图编程的人数,大量的PLC工程师从中受益。
    发表于 06-11 11:05 579次阅读
    西门子博途S7-SCL<b class='flag-5'>结构化</b>控制语言编程

    Python Pandas如何来管理结构化数据

    Python Pandas是一个为Python编程提供数据操作和分析功能的开源工具包。这个库已经成为数据科学家和分析师的必备工具。它提供了一种有效的方法来管理结构化数据(Series
    的头像 发表于 05-25 11:22 460次阅读
    Python Pandas如何来管理<b class='flag-5'>结构化</b>数据

    中国研究人员提出StructGPT,提高LLM对结构化数据的零样本推理能力

    尽管结构化数据的体量往往非常巨大,但不可能容纳输入提示中的所有数据记录(例如,ChatGPT 的最大上下文长度为 4096)。将结构化数据线性化为 LLM 可以轻松掌握的语句是解决此问题的简单方法。工具操作技术激励他们增强 LL
    的头像 发表于 05-24 16:02 2366次阅读
    中国研究人员提出StructGPT,提高LLM对<b class='flag-5'>结构化</b>数据的零样本推理能力

    KUKA机器人-结构化机器人程序V5.9

    机器人程序的结构是体现其使用价值的一个十分重要的因数。程序结构化越规范,程序就越易于理解、执行效果越好、越便于读取、越经济。为了使程序得到结构化设计,可以使用以下技巧
    的头像 发表于 05-10 11:45 758次阅读
    KUKA机器人-<b class='flag-5'>结构化</b>机器人程序V5.9