Structured Streaming基础--学习笔记

Structured streaming介绍

spark进行实时数据流计算时有两个工具:

  • Spark Streaming:编写rdd代码处理数据流,可以解决非结构化的流式数据
  • Structured Streaming:编写df代码处理数据流,可以解决结构化和半结构化的流式数据

1,数据相关介绍

有界数据和无界数据

①有界数据:

  • 有起始位置,有结束位置。比如文件数据 有起始行,有结束行
  • 有明确的数据容量大小。处理数据时就能知道处理的数据大小
  • 在处理数据时,按批次处理。数据处理完成程序就结束
  • 离线计算时处理的都是有界数据

②无界数据

  • 有起始位置,没有结束位置,知道数据的起始位置在哪里,但是数据到哪结束不知道(因为数据在不断产生,什么时候结束不知道)
  • 流式数据都是无界数据
  • 无界数据的总量是不确定的
  • 数据是不断产生的
  • 数据有时效性 (有效期)
  • 处理无界数据时,程序是持续运行的
  • 实时计算时处理的都是无界数据
  • 近期实时计算处理的微批数据

离线计算:

  • 离线计算就是在计算开始前已知所有输入数据,输入数据不会产生变化,且在解决一个问题后就要立即得出结果的前提下进行的计算。
  • 数据处理时间大于1个小时,一般离线计算的处理时间都是t+1天
  • mapreduce框架/spark框架

近实时计算:

  • 近实时计算就是在计算开始前将多条数据(流数据)放在一起处理,同时处理的是几条数据
  • 数据处理时间在5分钟到1小时范围内
  • spark框架

实时计算:

  • 实时计算就是一条一条的处理数据,处理的时间延迟很低
  • 数据处理时间小于5分钟
  • flink框架

2,Structured streaming基本使用

没有ncat服务的话,在线安装或离线导入

命令:yum install nc

执行前需要先启动ncat服务

命令:ncat -lk 8888

from pyspark.sql import SparkSessionss = SparkSession.builder.getOrCreate()#读取socket工具中的流数据options = {#指定ip地址'host':'192.168.88.100',#指定socket的端口号'port':'8888'
}df1 = ss.readStream.load(format='socket',**options)
#查看里面的数据不能通过show()方法查看
df1.printSchema()
#展示数据
#start:启动流计算
#awaitTermiantion():使应用程序一直运行
df1.writeStream.start(format='console',outputMode='append').awaitTermination()

3,Structured Streaming编程模型

1、Input Table 输入数据表 无界表

2、Query 对数据进行查询计算

3、Result Table 保存计算结果

4、Output 输出结果

变成模型遵循ETL处理流程:
①E->读取流数据,转换成无界表
②T->使用sparkSql处理流数据,流计算,查询计算
③L->存储E的结果

from pyspark.sql import SparkSession,functions as Fss = SparkSession.builder.getOrCreate()options = {# 指定ip地址'host': '192.168.88.100',# 指定socket的端口号'port': '8888'
}df1 = ss.readStream.load(format='socket',**options)
df_split = df1.select(F.split('value',','

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/644675.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

yarn集群HDFS datanode无法启动问题排查

一、问题场景 hdfs无法访问,通过jps命令查看进程,发现namenode启动成功,但是所有datanode都没有启动,重启集群(start-dfs.sh)后仍然一样 二、原因分析 先看下启动的日志有无报错。打开Hadoop的日志目录 …

线程池中线程数量与队列大小参数的如何设置实践-基于QPS的计算公式

目录 概要 传统方式? 线程池理解? 基于QPS的设置思路? 总结? 概要 线程池是个既靠谱但又陌生的家伙, 像管家一样, 会踏踏实实的把你交代的任务完成, 但很死板, 没有自动安排人的能力, 需要你给它配好人手(线程实例)和承载容量(队列大小), 这些参数关系影响业务服务整体…

rabbitmq基础-java-5、Topic交换机

1、简介 Topic类型的Exchange与Direct相比,都是可以根据RoutingKey把消息路由到不同的队列。 只不过Topic类型Exchange可以让队列在绑定BindingKey 的时候使用通配符! BindingKey 一般都是有一个或多个单词组成,多个单词之间以.分割&#x…

常用电机的分类简介

常用电机的分类简介 文章目录 常用电机的分类简介前言有刷直流电机步进电机BLDC/PMSM重点讲讲前言 电机可以将电能转换成机械能,在现代社会中广泛地应用在各种设备和系统中,家用电器,工业生产设备,交通工具,几乎随处可见。 电机通常由两个主要部分组成:定子和转子; 定…

数据库选型其实技术维度不太重要

看到这个标题可能觉得我在乱说,数据库选型要从多个角度和维度看来,还有各种POC。很多供应商朋友告诉我POC是一个漫长的过程,非常痛苦,要解决各种技术问题。怎么能说和技术无关呢? 因为从我的经历和周围听说的经验来说…

使用Python的pygame库实现迷宫游戏

使用Python的pygame库实现迷宫游戏 关于Python中pygame游戏模块的安装使用可见 https://blog.csdn.net/cnds123/article/details/119514520 先给出效果图: 这个游戏能自动生成迷宫布局。 在这个游戏中,玩家将使用键盘箭头键来移动,并且目标…

深入了解达梦数据库的增删查改操作:从入门到精通

目录 前言: 一.达梦数据库的增删改查 1.创建数据库 2.插入数据 3.查看数据 4.删除数据 5.数据 前言: 在当今数字化的时代,数据库已经成为企业和组织的核心资产,是实现高效数据处理、存储和管理的重要工具。达梦数据库&…

测试用例评审流程

1:评审的过程 A:开始前做好如下准备 1、确定需要评审的原因 2、确定进行评审的时机 3、确定参与评审人员 4、明确评审的内容 5、确定评审结束标准 6、提前至少一天将需要评审的内容以邮件的形式发送给评审会议相关人员。并注明详审时间、地点及偿参与人员等。 7、 在邮件中提醒…

科创板交易规则科普

一、交易时间: 交易日的上午9:30-11:30,下午13:00-15:00,其中9:15-9:25是开盘价公布以及竞价的时间,15:05-15:30是盘后固定价格交易时间。 二、买卖原则: 科创板实行T1交易,按照市场实时价格…

Linux运维实战:CentOS7.6操作系统(Shell脚本基础)

文章目录 第19章 Shell脚本基础19.1 Shell基本语法19.1.1 什么是Shell19.1.2 编程语言分类1.低级语言2.高级语言19.1.3 什么是Shell脚本19.2 Shell变量及运用19.2.1 Shell变量1.变量的设置规则如下2.按照变量的作用可以分成以下4类3.按照变量的作用域可以把变量分成两类:…

leetcode-200-岛屿问题

一 参考 200. 岛屿数量 - 力扣(LeetCode) 二 代码 class Solution { public:int numIslands(vector<vector<char>> &grid){int m = grid.size();int n = grid[0].size();int islandNum = 0;for (int i = 0; i < m; i++){for (int j = 0; j < n; j++…

音乐证书通过率发布,市场对持有者需求旺盛

音乐证书的考试难度备受关注&#xff0c;通过率终于揭晓。据官方公布的数据&#xff0c;该证书的通过率相对较低&#xff0c;需要考生在音乐技能和表现方面有出色的表现。然而&#xff0c;持有音乐证书的人才在市场上需求旺盛&#xff0c;各种音乐机构和企业对其表现出强烈兴趣…

SpringBoot整合ElasticSearch实现分页查询

本文使用SpringBoot整合ElasticSearch实现分页查询 文章目录 环境准备分页查询方式一方式二 本文小结 环境准备 还是继续使用spring-boot-starter-data-elasticsearch来实现分页查询操作 <!-- spring-boot-starter-data-elasticsearch--> <dependency><groupId&…

基于SpringBoot + vue 的旅游景区网站系统设计与实现

目录 一、需求分析 二、技术分析 三、功能分析 四、数据设计 五、界面展示 六、资源获取 一、需求分析 旅游推荐网站是指提供旅游相关信息、服务和建议的在线平台。这些网站旨在帮助用户规划和安排旅行&#xff0c;提供目的地信息、酒店预订、机票预订、租车服务、旅行建…

antv/g6绘制数据流向图

antv/g6绘制数据流向图 前言接口模拟数据htmlts页面效果 前言 在业务开发中需要绘制数据流向图&#xff0c;由于echarts关系图的限制以及需求的特殊要求&#xff0c;转而使用antv/g6实现&#xff0c;本文以代码的方式实现数据流向需求以及节点分组,版本"antv/g6": “…

从零学习开发一个RISC-V操作系统(四)丨RISC-V汇编语言编程

本篇文章的内容 一、RISC-V汇编语言简介1.1 RISC-V 汇编语言的基本格式1.2 RISC-V 汇编指令操作对象1.3 RISC-V 汇编指令编码格式1.4 RISC-V 汇编指令分类 二、RISC-V汇编语言详解2.1 add 加法指令2.2 sub 减法指令 本系列是博主参考B站课程学习开发一个RISC-V的操作系统的学习…

linux条件判断练习

1.实现自动生成相应的压缩包 1.写一个脚本&#xff0c;完成如下功能 传递一个参数给脚本&#xff0c;此参数为gzip、bzip2或者xz三者之一&#xff1b; (1) 如果参数1的值为gzip&#xff0c;则使用tar和gzip归档压缩/etc目录至/backups目录中&#xff0c;并命名为/backups/etc-…

PPP协议原理介绍+报文分析+配置指导-RFC1661

个人认为&#xff0c;理解报文就理解了协议。通过报文中的字段可以理解协议在交互过程中相关传递的信息&#xff0c;更加便于理解协议。 因此本文将在PPP协议报文的基础上进行介绍。 关于PPP协议基本原理&#xff0c;可参考RFC1661-The Point-to-Point Protocol (PPP)。 关于P…

解决causal_conv1d和mamba_ssm无法安装 -> 直接使用Mamba基础环境docker镜像

介绍 Mamba: Linear-Time Sequence Modeling with Selective State Spaces 论文&#xff1a;https://arxiv.org/abs/2312.00752 Code&#xff1a;https://github.com/state-spaces/mamba 目前 5.3k Star 主要是为了解决pip install causal_conv1d 和mamba_ssm 老是安装出错。 包…

Python系列(5)—— 作用域

Python的四种作用域详解 在Python编程语言中&#xff0c;变量的作用域描述了变量在代码的哪个部分是活跃的&#xff0c;即可见和可访问的。Python主要支持四种类型的作用域&#xff1a;局部&#xff08;Local&#xff09;、嵌套局部&#xff08;Enclosing&#xff09;、全局&am…