数据预处理-数据推送-过滤纯查询数据|学习笔记

简介: 快速学习数据预处理-数据推送-过滤纯查询数据

开发者学堂课程【大数据实战项目:反爬虫系统(Lua+Spark+Redis+Hadoop框架搭建)第四阶段数据预处理-数据推送-过滤纯查询数据】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/672/detail/11670


数据预处理-数据推送-过滤纯查询数据


过滤纯查询数据

括号扩到数据过滤后,表示在括号内部,都是针对数据进行的操作

image.png

即流程中数据预处理阶段,链路统计未对数据进行操作,数据清洗、数据脱敏一直到数据结构化都是对数据进行操作,数据处理完后要对数据进行推送操作,不对数据进行任何操作,数据获取后写入数据库中,因此数据推送规划到预处理后数据推送分两种情况,一种是查询类数据的推送,一种是预定类数据的推送

1.目标

根据业务场疑,将相应的数据推送到相应的 topic 内。

推送到 Kafka 中,Kafka 会划分成 topic

2.需求

前面我们已经将数据进行了分类、解析、加工(识别,爬虫判断),并封装到了 ProcessedData 中,现在我们需要将加工完的数据推送到 kafka 中,供后续的反爬虫计算或者其他业务使用。

由于 ProcessedData 中封装着两种数据类型,query 数据或者 book 数据,我们需要在推送的时候判断是属于query 还是 book,分别推送到不同的 topic 中。

query 查询类数据,book 预定类数据

根据业务场景,即数据分为查询类和预定类数据,国内国际不考虑,查询、预定都有国内国际,大的方向为查询和预定,在推送的时候判断是属于 query 还是 book,分别推送到不同的 topic 中,即将查询的数据推送到查询的 topic中,预定的数据推送到预定的 topic 中

3.设计

(1)通过操作类型 behaviorType=0过滤 ProcessedData 数据中的 query 数据

(2)如果 query 数据不为笙,推送到 kafka 的 processedQuery 这个 topic 中

(3)通过操作类型behaviorType=1过滤 ProcessedData 数据中的 book 数据

(4)如果 book 数据不为空,推送到 kafka 的 processedBook 这个 topic 中

过滤出纯查询数据和纯预定数据后,单独推送到相应的数据中,即需求

在 object 实现查询类数据的操作,后面实现预定

推送 query 数据:DataSend.sendQueryDataToKafka

DataSend 数据发送,sendQueryDataToKafka 发送查询数据到 Kafka 中,DataSend 没有需要创建,DataSend 用于实现数据发送功能,根据需求即查询的数据推送到查询是 topic,预定的数据推送到预定的topic

将结构化以后的数据 processedData 推送到 Kafka 中,toKafkaString 效果用#CS#进行拼接,直接将String类型传入

ProcessedData.toKafkaString()中既有查询又有预定,要判断是查询还是预定,toKafkaString 无法实现,在processedData 中有一个 RequestType 包括国内查询和国际查询,国内预定和国际预定

打入 Kafka 之前,需要用 processedData

未判断出纯查询数据,返回到 DataProcess 中,将 DataProcess 放入,即 rdd 传入,DataProcess 包括既查询数据,也有预定数据,在 DataProcess 中过滤纯查询数据,

创建方法,在方法中实现将查询的数据推送到查询是 topic,要过滤出纯查询的数据,即过滤调预定的数据,调用filter,调用 filter 后拿到的结果是一条条数据,即 message,找到 message 中的 requestType,现在调的 requestType 表示数据是查询,国内查询还是国际查询,国内预定还是国际预定,不关心国内还是国际,只关心过滤掉预定的数据保留查询的数据,requestType 是一个样例类,有 flightType 和 behaviorType,behaviorType 有查询、预定,调用 behaviorType,filter 返回值(双等于)引入 BehaviorTypeEnum.Query,数据的类型只需要查询和预定,所有的数据都是查询类,即保留纯查询类等于 BehaviorTypeEnum 中的 Query,经过此方法处理,过滤掉所有的预定的数据,预定的数据是 book,不等于 Query,返回 false,被过滤掉

数据类型是 processedData,数据拿到纯查询数据,需要将纯查询数据写入到 Kafka 中,processedData 是样例类需要转成字符串,调用 map,拿到里面的每一条数据,调用 message.toKafkaString.filter(message=message.requestType.behaviorType==BehaviorTypeEnum.Query)过滤出纯查询的数据,.map(message-message.tokafkastring())将纯查询数据转成 Kafkastring,拿到字符串数据,用#CS#拼接的数据

以上过滤出纯查询数据,同时转为字符串,用#CS#拼接的数据

//过滤出纯查询的数据(过滤掉预定的数据)DataProcess.filter(message=message.requestType.behaviorType==BehaviorTypeEnum.Query).map(message-message.toKafkastring())

将数据推送到 Kafka 中,即数据推送过程

4.数据推送

查询的数据推送到查询的 Topic 内,预定的数据推送到预定的Topic内思路与关键代码:

获取到结构化后数据数据,过滤掉预定的数据,只保留查询的数据

在配置文件中读取查询类的 Topic 到程序中

创建 kafka 生产者

数据的载体

数据的发送

关闭生成者

//用于实现数据发送功能

//查询的数据推送到查询的 topic

//预定的数据推送到预定的 topicob

Object Datasend {

//将查询的数据推送到查询的 topic

def sendQueryDataToKafka(DataProcess: RDD[ ProcessedData]): unit = {

//过滤出纯查询的数据(过滤掉预定的数据)使用"#CS#”进行拼接

vlqueryDatas=DataProcess.filter(message=message.

requestType.behaviorType==BehaviorTypeEnum.Query).map(message-message.toKafkastring())

//将数据推送到 Kafka 中

//1在配置文件中读取查询类的 Topic 到程序中

//2创建 kafka 生产者

//3数据的载体

//4数据的发送

//5关闭生成者

将数据推送到 Kafka 按照上面5步流程进行

相关文章
|
6月前
|
Python
选择和过滤数据DataFrame信息案例解析
该文介绍了如何使用pandas处理DataFrame数据。首先,通过创建字典并调用pd.DataFrame()函数转换为DataFrame。接着展示了使用loc[]选择年龄大于30的记录,iloc[]选取特定位置行,以及query()根据字符串表达式筛选(年龄大于30且城市为北京)数据的方法。
129 1
|
3月前
|
存储 数据采集 分布式计算
批量离线表的工作原理是什么?
【8月更文挑战第11天】
78 5
|
9天前
|
数据采集 机器学习/深度学习 测试技术
数据清洗与过滤中,如何确定哪些数据是高质量的?
数据清洗与过滤中,如何确定哪些数据是高质量的?
|
22天前
|
数据采集 机器学习/深度学习 自然语言处理
数据清洗与过滤
数据清洗与过滤
|
3月前
|
数据采集 机器学习/深度学习 前端开发
Java爬虫中的数据清洗:去除无效信息的技巧
Java爬虫中的数据清洗:去除无效信息的技巧
|
6月前
|
数据采集 数据挖掘 数据格式
探讨 DataFrame 的高级功能,如数据清洗、转换和分组操作
【5月更文挑战第19天】本文探讨了DataFrame的高级功能,包括数据清洗、转换和分组操作。在数据清洗时,使用fillna处理缺失值,设定阈值或统计方法处理异常值。数据转换涉及标准化和编码,如将分类数据转为数值。分组操作用于按特定列聚合计算,支持多级分组和自定义聚合函数。掌握这些技能能有效处理和分析数据,为决策提供支持。
88 2
|
数据采集 数据可视化 数据挖掘
如何筛选和过滤ARWU网站上的大学排名数据
ARWU网站(ShanghaiRanking's Academic Ranking of World Universities)是一个公认的全球大学排名的先驱和最值得信赖的大学排名之一。它每年发布世界前1000所研究型大学的排名,基于透明的方法论和客观的第三方数据。ARWU网站上的大学排名数据可以为高考考生、专业选择、就业指导、行业发展等提供有价值的参考信息。
如何筛选和过滤ARWU网站上的大学排名数据
|
自然语言处理 搜索推荐 算法
推荐系统:基于内容的过滤
此图像包含用户喜欢的电影的描述。根据用户喜欢的电影向用户推荐电影,需要使用这些描述得到一个数学形式,即文本应该是可测量的,然后通过与其他电影进行比较来找到相似的描述。 我们有各种电影和关于这些电影的数据。为了能够比较这些电影数据,需要对数据进行矢量化。在向量化这些描述时,必须创建所有电影描述(假设 n)和所有电影(假设 m)中的唯一词矩阵。列中有所有唯一的单词,行中有所有电影,每个单词在交叉点的电影中使用了多少。这样,文本就可以被矢量化。
290 0
|
分布式计算 监控 Spark
日志分析实战之清洗日志小实例7:查看样本数据,保存统计数据到文件
日志分析实战之清洗日志小实例7:查看样本数据,保存统计数据到文件
139 0
日志分析实战之清洗日志小实例7:查看样本数据,保存统计数据到文件
|
数据采集 SQL 分布式计算
数据预处理-数据清洗-读取过滤规则到程序代码|学习笔记
快速学习数据预处理-数据清洗-读取过滤规则到程序代码
189 0
数据预处理-数据清洗-读取过滤规则到程序代码|学习笔记