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)的更多相关文章

  1. 2,StructuredStreaming的事件时间和窗口操作

    推荐阅读:1,StructuredStreaming简介 使用Structured Streaming基于事件时间的滑动窗口的聚合操作是很简单的,很像分组聚合.在一个分组聚合操作中,聚合值被唯一保存在 ...

  2. StructuredStreaming简单的例子(NewAPI)

    StructuredStreaming简单的例子(NewAPI)(wordCount) package com.briup.streaming.structed import org.apache.l ...

  3. StructuredStreaming编程模型

    StructuredStreaming编程模型 基本概念 ◆ Time ◆ Trigger ◆ Input ◆ Query ◆ Result ◆ Output  案例模型:实时处理流单词统计编程模型 ...

  4. spark structured-streaming 最全的使用总结

    一.spark structured-streaming  介绍 我们都知道spark streaming  在v2.4.5 之后 就进入了维护阶段,不再有新的大版本出现,而且 spark strea ...

  5. Structured-Streaming之窗口操作

    Structured Streaming 之窗口事件时间聚合操作 Spark Streaming 中 Exactly Once 指的是: 每条数据从输入源传递到 Spark 应用程序 Exactly ...

  6. StructuredStreaming基础操作和窗口操作

    一.流式DataFrames/Datasets的结构类型推断与划分 ◆ 默认情况下,基于文件源的结构化流要求必须指定schema,这种限制确保即 使在失败的情况下也会使用一致的模式来进行流查询. ◆ ...

  7. Spark学习之路 (十八)SparkSQL简单使用

    一.SparkSQL的进化之路 1.0以前: Shark 1.1.x开始: SparkSQL(只是测试性的)  SQL 1.3.x: SparkSQL(正式版本)+Dataframe 1.5.x: S ...

  8. Spark(十二)SparkSQL简单使用

    一.SparkSQL的进化之路 1.0以前:   Shark 1.1.x开始:SparkSQL(只是测试性的)  SQL 1.3.x:          SparkSQL(正式版本)+Datafram ...

  9. Flink 靠什么征服饿了么工程师?

    Flink 靠什么征服饿了么工程师? 2018-08-13    易伟平 阿里妹导读:本文将为大家展示饿了么大数据平台在实时计算方面所做的工作,以及计算引擎的演变之路,你可以借此了解Storm.Spa ...

随机推荐

  1. nginx 的return配置

    该指令一般用于对请求的客户端直接返回响应状态码.在该作用域内return后面的所有nginx配置都是无效的. 可以使用在server.location以及if配置中. 除了支持跟状态码,还可以跟字符串 ...

  2. animation动画汇总(一阶段项目)

    animation 属性 动画属性: 1.animation-name:规定需要绑定到选择器的 keyframe 名称. 2.animation-duration:规定完成动画所花费的时间,以秒或毫秒 ...

  3. 4.17 斐波那契数列 K维斐波那契数列 矩阵乘法 构造

    一道矩阵乘法的神题 早上的时候我开挂了 想了2h想出来了. 关于这道题我推了很多矩阵 最终推出两个核心矩阵 发现这两个矩阵放在一起做快速幂就行了. 当k==1时 显然的矩阵乘法 多开一个位置维护前缀和 ...

  4. linux之DHCP服务端搭建 ( ip分配 四个阶段原理)

    DHCP服务 ip分配 四个阶段原理 1.DHCP服务目的 协议 作用 租约 原理四个阶段 动态主机配置协议(Dynamic Host Configuration Protocol,动态主机配置协议) ...

  5. 强烈推荐的 IntelliJ IDEA 插件,别说我没告诉你

    为什么你的 Intellij IDEA 没别人的好用?还不是因为你缺少这几个插件啊! 善用 Intellij IDEA 插件可以提高我们的开发效率,今天和大家一起分享一下实际工作中常用的几款能提升幸福 ...

  6. 树形DP 学习笔记(树形DP、树的直径、树的重心)

    前言:寒假讲过树形DP,这次再复习一下. -------------- 基本的树形DP 实现形式 树形DP的主要实现形式是$dfs$.这是因为树的特殊结构决定的——只有确定了儿子,才能决定父亲.划分阶 ...

  7. OAuth2.0-1

    分布式授权解决方案: 其中授权服务一般放在网关服务上,资源服务指的是,挂在网关下得各个微服务 网关授权客户端>客户端拿到token>客户端拿到token到网关验证,获取token明文> ...

  8. Docker-compose实战

    Docker-compose实战 各位小伙伴们,我们前面的篇文章分享了.docker的基础知识点.如何编写一个Dockerfile.docker网络是怎么回事.如何编写docker-compose.y ...

  9. CentOS7 安装 Nexus

    CentOS7 安装 Nexus 所需软件包 jdk-8u231-linux-x64.tar.gz nexus-3.24.0-02-unix.tar.gz 创建安装目录 mkdir -p /opt/n ...

  10. 在centos 上安装python

    1.下载最新版本python源码包 下载地址为https://www.python.org/ftp/python/3.8.5/Python-3.8.5.tgz 2.解压源码包 tar -zxf Pyt ...