StructuredStreaming(New)
SparkStreaming API using DataSets and DataFrames (New)
使用流式DataSets和流式DataFrames的API
◆ 1.创建流式DataFrames和流式Datasets(重点)
◆ 2.流式DataFrames/Datasets的操作(重点)
◆ 3.启动流查询(重点)
◆ 4.管理流查询(了解)
◆ 5.监控流查询(了解)
◆ 6.使用检查点从故障中恢复(重点)
1.创建流式DataFrames和流式Datasets(重点)
◆ 输入源(Input Source)
File Source
Kafka Source
Socket Source (测试)
Rate Source (测试,实验性)
◆ 流式DataFrames/Datasets的结构类型推断与划分
FileSource:
◆ 须知:从目录中读取文件来作为输入数据流。
支持文件的格式有: text, csv, json, orc, parquet。
◆ 注意:支持glob路径,但不支持多个逗号分隔路径golbs。
◆ 属性:有五个option可以设置:
➢ path:输入目录的路径,对所有文件格式都是通用的
➢ maxFilesPerTrigger:在每个触发器中要考虑的新文件的最大数目(默认值:没有最大值)
➢ latestFirst:首先是否处理最新的新文件,当有大量的文件积压时是有用的(默认值:false)
➢ maxFileAge:默认值是7d 一周:如果latestFirst=true和maxFilesPerTrigger被设置,此配置不生效
➢ fileNameOnly:是否只基于文件名检查新文件而不是完整路径(默认值:false)
将这个值设置为“true”时,下面的文件将被视为同一个文件,
因为它们的文件名“dataset .txt”是相同的: “file:///dataset”
“s3://a/dataset”
“s3n://a/b/dataset”
“s3a://a/b/c/dataset””
◆ 其他配置可以参照以下这个类:
➢ org.apache.spark.sql.execution.streaming.FileStreamOptions
Kafka Source
◆ 须知:Kafka broker的版本需要是0.10.0或者更高版本。
◆ 要使用Kafka,项目的pom.xml需要引入Kafka的依赖
➢ <!-- spark-sql-kafka-0-10 -->
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql-kafka-0-10_2.11</artifactId>
<version>2.3.0</version>
</dependency>
◆ Options 必须设置:
➢ kafka.bootstrap.servers (指定kafka的访问地址host1:port1,host2:port2)
➢ subscribe/subscribepattern/assign(指定kafka中的主题)
➢ failondataloss(数据丢失报错)
➢ startingoffsets 读取数据的起始偏移量
➢ endingoffsets 读取数据的截止偏移量(在流式操作中此配置不生效)
◆ 其他配置可以参照以下这两个类:
➢ org.apache.kafka.clients.CommonClientConfigs
➢ org.apache.kafka.clients.consumer.ConsumerConfig
SocketSource
◆ 须知:从Socket连接中读取UTF8文本数据。在驱动器程序中监听服务网络端口。
◆ 注意:Socket Source只适用于测试,因为它不支持端到端的容错保证。
◆ 有三个option可以设置:
➢ host(必须)
➢ port(必须)
➢ includeTimestamp 默认值false 不生成时间戳日期
◆ 其他配置可以参照以下这个类:
➢ org.apache.spark.sql.execution.streaming.TextSocketSource
RateSource
◆ 须知:只支持测试
◆ 注意: 只有在连续模式中支持的选项才是Nuffice分区和RayScript第二个。
流式DataFrames/Datasets的结构类型推断与划分
◆ 默认情况下,基于文件源的结构化流要求必须指定schema,这种限制确保即
使在失败的情况下也会使用一致的模式来进行流查询。
◆ 对于特殊用例,可以通过设置spark.sql.streaming.schemaInference = true。
此时将会开启Spark自动类型推断功能。
◆ 注意:默认Spark sql中自动类型推断为启动状态。
◆ 当读取数据的目录中出现/key=value/ 的子目录时,Spark将自动递归这些子目
录,产生分区发现。
◆ 如果用户提供的 schema 中出现了这些列, Spark将会根据正在读取的文件路
径进行填充。
◆ 构成分区结构的目录必须在查询开始时是存在的,并且必须保持static 。
➢ 例如,当 /data/year=2015/ 存在时,可以添加 /data/year=2016/,但是更改
分区列将无效的(即通过创建目录 /data/date=2016-04-17/ )。
◆ 注意:如果希望得到的数据可以按照/key=value/这种目录生成时,可以在输出
数据时借助于partitionBy(“columnName”)
StructuredStreaming(New)的更多相关文章
- 2,StructuredStreaming的事件时间和窗口操作
推荐阅读:1,StructuredStreaming简介 使用Structured Streaming基于事件时间的滑动窗口的聚合操作是很简单的,很像分组聚合.在一个分组聚合操作中,聚合值被唯一保存在 ...
- StructuredStreaming简单的例子(NewAPI)
StructuredStreaming简单的例子(NewAPI)(wordCount) package com.briup.streaming.structed import org.apache.l ...
- StructuredStreaming编程模型
StructuredStreaming编程模型 基本概念 ◆ Time ◆ Trigger ◆ Input ◆ Query ◆ Result ◆ Output 案例模型:实时处理流单词统计编程模型 ...
- spark structured-streaming 最全的使用总结
一.spark structured-streaming 介绍 我们都知道spark streaming 在v2.4.5 之后 就进入了维护阶段,不再有新的大版本出现,而且 spark strea ...
- Structured-Streaming之窗口操作
Structured Streaming 之窗口事件时间聚合操作 Spark Streaming 中 Exactly Once 指的是: 每条数据从输入源传递到 Spark 应用程序 Exactly ...
- StructuredStreaming基础操作和窗口操作
一.流式DataFrames/Datasets的结构类型推断与划分 ◆ 默认情况下,基于文件源的结构化流要求必须指定schema,这种限制确保即 使在失败的情况下也会使用一致的模式来进行流查询. ◆ ...
- Spark学习之路 (十八)SparkSQL简单使用
一.SparkSQL的进化之路 1.0以前: Shark 1.1.x开始: SparkSQL(只是测试性的) SQL 1.3.x: SparkSQL(正式版本)+Dataframe 1.5.x: S ...
- Spark(十二)SparkSQL简单使用
一.SparkSQL的进化之路 1.0以前: Shark 1.1.x开始:SparkSQL(只是测试性的) SQL 1.3.x: SparkSQL(正式版本)+Datafram ...
- Flink 靠什么征服饿了么工程师?
Flink 靠什么征服饿了么工程师? 2018-08-13 易伟平 阿里妹导读:本文将为大家展示饿了么大数据平台在实时计算方面所做的工作,以及计算引擎的演变之路,你可以借此了解Storm.Spa ...
随机推荐
- ES的集群原理
文章转载自:https://www.cnblogs.com/soft2018/p/10213266.html 一.ES集群原理 查看集群健康状况:URL+ /GET _cat/health (1).E ...
- 跟老刘学运维day02~部署虚拟环境安装Linux系统(1)
第1章 部署虚拟环境安装Linux系统 所谓“工欲善其事,必先利其器” 1.准备工具 VmwareWorkStation 15.5——虚拟机软件(必需) RedHatEnterpriseLinux ...
- SYN 攻击原理及解决方法
原理SYN foold攻击主要针对tcp通信三次握手期间做的手脚,所以要弄懂这个攻击的原理我们首先必须知道tcp三次握手的详细过程 由上图可知tcp三次握手顾名思义要经过三个步骤,这三个步骤分别是 客 ...
- IO—》转换流和缓冲流
转换流 摘要: InputStreamReader和OutputStreamWriter他们分别是FileReader和FileWriter的父类 当只是单纯的读写文件而不改变文件的编码格式时,就分别 ...
- LFM oversea投资笔记、思摩尔、移卡、建业新生活、鑫苑物业
LFM oversea 1.公司简介 2.业务展望 3. 投资策略 LFM oversea介绍 LFM oversea是在开曼成立的投资基金, 专注于中国优质企业在香港和美国IPO过程中的 基石.锚定 ...
- 谁来教我渗透测试——黑客应该掌握的Windows基础
今天我们看看作为一个黑客对于Windows应该掌握哪些基础知识,主要内容包含以下四个方面: 系统目录.服务.端口和注册表: 黑客常用的DOS命令及批处理文件的编写: 黑客常用的快捷键,以及如何优化系统 ...
- PHP fileperms() 函数
定义和用法 fileperms() 函数返回文件或目录的权限. 如果成功,该函数以数字形式返回权限.如果失败,则返回 FALSE. 语法 fileperms(filename) 参数 描述 filen ...
- PDOStatement::setAttribute
PDOStatement::setAttribute — 设置一个语句属性(PHP 5 >= 5.1.0, PECL pdo >= 0.2.0)高佣联盟 www.cgewang.com 说 ...
- ajax模拟表单提交,后台使用npoi实现导入操作 方式一
页面代码: <form id="form1" enctype="multipart/form-data"> <div style=" ...
- ElasticSearch学习中的坑
elasticsearch 版本为 6.8.2 1 安装完启动报错: 解决,建立新用户执行 [root@localhost bin]# ./elasticsearch [2019-09-01T05 ...