Structred_Source_Kafka_需求 | 学习笔记

简介: 快速学习 Structred_Source_Kafka_需求

开发者学堂课程【大数据Spark2020版(知识精讲与实战演练)第五阶段:Structred_Source_Kafka_需求】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/692/detail/12153


Structred_Source_Kafka_需求

内容介绍

一.目标

二.步骤

 

一.目标

通过本章节的学习,可以掌握一个常见的需求,并且了解后面案例的编写步骤

 

二.步骤

1.需求

模拟一个智能物联网系统数据统计

有一个智能家居品牌叫做 Nest, 他们主要有两次产品,一个是恒温器,一个是摄像头。

恒温器的主要作用是通过感应器识别家里什么时候有人,摄像头主要作用是通过学习算法来识别出现在摄像头中的人是否是家里人,如果不是则报警

所以这两个设备都需要统计一个指标,就是家里什么时候有人,此需求就是针对这个设备的部分数据,来统计家里什么时候有人。

摄像头存在 ai 算法,摄像头内消息传递到 Kafka,使用 Spark 处理消息。

image.png

2. 使用生产者在 Kafka 的 Topic:steaming-test 中输入 JSON 数据

传到 kafka,在 kafka 内处理并解析,统计。

{

“devices":{

" cameras":{

"device_id:“awJo6rH"

"last_event{

"has_sound”:true,

"has_motion" :true ,

"has_person”:true,

"start_time":“2016-12—29T00: 00: 00.000Z "

"end_time":2016-12-29718:42 :00.000Z"

}

}

}

此格式为 json 格式·

3.使用 Structured Streaming 来过滤出来家里有人的数据

把数据转换为时间-->是否有人这样类似的形式

4.数据转换

追踪 json 数据的格式。

可以在一个在线的工具 https://jsonformatter.org/ 中格式化 JSON,公发现 JSON 格式如下

object (1)

devices (1)

careras (2)

Device_id : anjo6rm

Last_event (5)

Has_sound :true

has_ Rotion :true

Has_person:true

Start_time:2016-12-7910010000.0002

End_time:2016-122911842:00.002

将 json 放入网站中进行格式化,多行变单行。否则放入卡夫卡中是多行消息。

image.png

5.反序列化

JSON 数据本顺上就是字符串,只不过这个字符串是有结构的,虽然有结构,但是很难直接从字符串中取出某个值而反字列化,就是指把 JSON 数据转为对象,或省转为 DataFrame,可以直接使用某.一个列或者某个字段获取数据, 更加方便

而想要做到这件事,必须要先根据数据格式,编号 Schema 对象,从而通过些方式转为 DataFrame

6.总结

1.业务简单米说,就是收集智能家居设备的数据,通过流计算的方式计算其特征规律

2.Kafka 常见的业务场景就是对接业务系统和数据系统

业务系统经常会使用 JSON 作为数据传输格式

所以使用 Structured Streaming 来对按 Kafka 并反序列化 Kafka 中的 JSON 格式的消息,是一个 非常重要的技能

3.无论使用什么方式,如果想反序列化 JSON 数据,就必须要先追踪 JSON 数据的结构。

数据从设备出发,放到卡夫卡,使用 Spark 处理消息,统计时间点,观看时间点家里是否有人。

相关文章
|
5月前
|
消息中间件 Java Kafka
kafka入门demo
kafka入门demo
34 0
|
4月前
|
消息中间件 Java Kafka
Apache Kafka-初体验Kafka(04)-Java客户端操作Kafka
Apache Kafka-初体验Kafka(04)-Java客户端操作Kafka
31 0
|
6月前
|
消息中间件 Kafka Linux
kafka3.0创建topic出现zookeeper is not a recognized option
kafka3.0创建topic出现zookeeper is not a recognized option
88 0
|
7月前
|
消息中间件 存储 Kafka
Apache Kafka - 构建数据管道 Kafka Connect
Apache Kafka - 构建数据管道 Kafka Connect
101 0
|
12月前
|
消息中间件 监控 Kafka
Apache Kafka-使用Kafak Tool 查看Kafka中的数据
Apache Kafka-使用Kafak Tool 查看Kafka中的数据
338 0
|
消息中间件 Java Kafka
Kafka+Avro的demo
Kafka+Avro的demo
118 0
|
消息中间件 JSON 分布式计算
Structred_Source_Kafka_连接 | 学习笔记
快速学习 Structred_Source_Kafka_连接
80 0
Structred_Source_Kafka_连接 | 学习笔记
|
消息中间件 分布式计算 大数据
Structured_Source_Kafka_整合 | 学习笔记
快速学习 Structured_Source_Kafka_整合
73 0
Structured_Source_Kafka_整合 | 学习笔记
|
消息中间件 JSON 大数据
Structured_Source_Kafka_回顾 | 学习笔记
快速学习 Structured_Source_Kafka_回顾
58 0
Structured_Source_Kafka_回顾 | 学习笔记
|
消息中间件 存储 Java
【Kafka】(六)Java 操作 kafka Streams
【Kafka】(六)Java 操作 kafka Streams
324 0
【Kafka】(六)Java 操作 kafka Streams