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 ...
随机推荐
- 随机生成姓名&批量生成不重名
# -*- coding: utf-8 -*- """ Created on Thu Jul 23 14:43:07 2020 @author: Administrato ...
- lua判断字符串包含另一个字符串
lua判断字符串包含另一个字符串 --string.find("元字符串","模式字符串") 如下: print(string.find("CCBWe ...
- java 心跳机制
心跳机制:就是每隔几分钟发送一个固定信息给服务端,服务端收到后回复一个固定信息如果服务端几分钟内没有收到客户端信息则视客户端断开. 心跳包 心跳包就是在客户端和服务器间定时通知对方自己状态的一个自己定 ...
- 记一次使用commit提交大文件无法推送到远程库解决问题过程及git rebase使用
记一次使用commit提交大文件无法推送到远程库解决问题过程及git rebase使用 目录 大文件无法push到远程仓库 问题 commit的大文件无法push到远程库解决办法 git filter ...
- c++ 第一天 变量、判断、循环
C++介绍 语言的产生 C++ 由 Bjarne Stroustrup 于 1979 年在贝尔实验室开始设计开发的,由于C++ 进一步扩充和完善了 C 语言,是一种面向对象的程序设计语言 ,所以最初命 ...
- SpringMVC入门和常用注解
SpringMVC的基本概念 关于 三层架构和 和 MVC 三层架构 我们的开发架构一般都是基于两种形式,一种是 C/S 架构,也就是客户端/服务器,另一种是 B/S 架构,也就 是浏览器服务器.在 ...
- python7.3客户端、服务端的建立
import socket #创建客户端client=socket.socket() #生成socket连接对象client.connect("localhost",6969) # ...
- 初步理解@Transactional注解
在SSM项目中,经常在业务层的类或者方法上看到@Transactional注解,只是知道这个注解的作用是进行事务管理,但是具体有哪些属性,在什么情况下进行回滚,确是不那么清楚.所以在网上看了一些视频和 ...
- 异步文件通道Java NIO你需要了解多少,来看看这篇文章
在Java 7,AsynchronousFileChannel 被添加到了Java NIO中.使用AsynchronousFileChannel可以实现异步地读取和写入文件数据. 创建一个Asynch ...
- 自动发布-asp.net自动发布、IIS站点自动发布(集成SLB、配置管理、Jenkins)
PS:概要.背景.结语都是日常“装X”,可以跳过直接看自动发布 环境:阿里云SLB.阿里云ECS.IIS7.0.Jenkins.Spring.Net 概要 公司一个项目从无到有,不仅仅是系统从无到有的 ...