Structured Streaming从Kafka 0.8中读取数据的问题
众所周知,Structured Streaming默认支持Kafka 0.10,没有提供针对Kafka 0.8的Connector,但这对高手来说不是事儿,于是有个Hortonworks的邵大牛(前段时间刚荣升Spark Committer)给出了一个开源的第三方解决方案:
https://github.com/jerryshao/spark-kafka-0-8-sql
不过下载下来后,编译不通过:
看来有时候,牛人办事也不一定靠谱,当然从github中的issue记录看,邵大牛认为是spark方面做了改动:
https://github.com/jerryshao/spark-kafka-0-8-sql/issues/7
不过想基于Structured Streaming使用Kafka 0.8的人不在少数,另有祝威廉把这个问题给修正了:
https://github.com/allwefantasy/streamingpro/tree/master/streamingpro-spark-2.0/src/main/java/com/hortonworks/spark/sql/kafka08
使用方式:
val kafkaDf = spark.readStream.format("kafka").option("kafka.bootstrap.servers", "10.20.0.1:9093").option("startingoffset", "latest").option("subscribe", engineConfig.sourceTopic).load()
由于Kafka 0.10才提供了时间戳功能,所以尽管经过上面的折腾,Structured Streaming可以和Kafka 0.8进行Connect,但是从Kafka 0.8中读取的记录,默认是不带TimeStamp的!
从代码中,我们可以看到,只有如下5个数据类型:
StructField("key", BinaryType),StructField("value", BinaryType),StructField("topic", StringType),StructField("partition", IntegerType),StructField("offset", LongType)
如果要使用Structured Streaming的基于Event Time功能,以及Watermark特性,由于没法直接从Kafka 0.8的数据中提取到TimeStamp,需要通过转换进行内部记录时间戳的提取。
再次感谢邵大牛及祝大牛的无私奉献!
转载于:https://www.cnblogs.com/liugh/p/7475934.html
Structured Streaming从Kafka 0.8中读取数据的问题相关推荐
- Flink使用KafkaSource从Kafka消息队列中读取数据
Flink使用KafkaSource从Kafka消息队列中读取数据 使用KafkaSource从Kafka消息队列中读取数据 1.KafkaSource创建的DataStream是一个并行的DataS ...
- Flink从Kafka 0.8中读取多个Topic时的问题
Flink提供了FlinkKafkaConsumer08,使用Kafka的High-level接口,从Kafka中读取指定Topic的数据,如果要从多个Topic读取数据,可以如下操作: 1.appl ...
- 2021年大数据Spark(四十九):Structured Streaming 整合 Kafka
目录 整合 Kafka 说明 Kafka特定配置 KafkaSoure 1.消费一个Topic数据 2.消费多个Topic数据 3.消费通配符匹配Topic数据 Kafka ...
- Structured Streaming整合kafka
Structured Streaming整合kafka Spark2.0以后开始推出Structured Streaming,详情参考上文Spark2.0 Structured Streaming.本 ...
- 大数据Spark Structured Streaming集成 Kafka
目录 1 Kafka 数据消费 2 Kafka 数据源 3 Kafka 接收器 3.1 配置说明 3.2 实时数据ETL架构 3.3 模拟基站日志数据 3.4 实时增量ETL 4 Kafka 特定配置 ...
- 中读取数据_Flink入门实战 (中)
一.Flink 流处理 API 1.Environment getExecutionEnvironment 创建一个执行环境,表示当前执行程序的上下文. 如果程序是独立调用的,则 此方法返回本地执行环 ...
- VC++中从txt文本中读取数据并且存到二维数组中
这几天因为在做作业,所以不仅会想到这一类有关的问题.现在我需要实现的是讲txt文件的数据读取出来并且存储到一个二维数组中.,首先为了对待什么样的矩阵我们都可以读取,我们就要设置一个动态的矩阵,这样当我 ...
- vc++从txt文件中读取数据
数值分析课上老师说要将数据写在txt文件上,然后让程序从txt文件中读取数据.让本来C++已经遗忘了很久的我们无从下手,在网上也查看了很多,发现大多都是扯淡,放在VC++编辑器上发现并不能运行,不知道 ...
- c 语言如何处理表格文件中的数据库,C#程序从Excel表格中读取数据并进行处理
今天做了一个Excel表格数据处理的事情,因为数据量表较大(接近7000条)所以处理起来有点麻烦,于是写了一个程序, 先将程序记下以便将来查找. using System; using System. ...
最新文章
- 批量建立用户和设置密码,批量删除用户脚本
- B4010 菜肴制作 拓扑排序(附随机跳题代码)
- openlayers3 根据经纬度 自动画框_Power Query获取上海市各区的经纬度
- springMVC+Mybatis实现查询分页
- kettle查询mysql获取uuid_java中调用kettle转换文件
- 斜度符号标注_机械图纸尺寸标注规则
- [数据结构]《数据结构教程》多语言微课版创作计划
- 国人走向世界的一个很好的艺术与设计网站
- python pytz下载_python:pytz包安装问题:ImportError:没有名为pytz的模块
- libtorrent安装windows版
- 深入理解之border属性(第一期)
- 如何理解时间复杂度和空间复杂度
- 关于node-pyg的路径问题导致build失败
- JavaScript 基础(002_Event Bubbling)
- linux 删除文件名带括号的文件
- WIN10任务栏的喇叭点了没反应,但是声音是正常的,就是不能调节音量
- 互动直播之WebRTC服务器Kurento实战
- 持续集成:Jenkins Pipeline共享库定义和使用
- Lambda 表达式的常用操作示例
- 【批处理DOS-CMD命令-汇总和小结】-cmd扩展命令、扩展功能(cmd /e:on、cmd /e:off)