数据预处理-航线类型操作类型-效果与总结|学习笔记

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 快速学习数据预处理-航线类型操作类型-效果与总结

开发者学堂课程【大数据实战项目:反爬虫系统(Lua+Spark+Redis+Hadoop 框架搭建)第三阶段数据预处理-航线类型操作类型-效果与总结】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/671/detail/11657


数据预处理-航线类型操作类型-效果与总结


内容介绍:

一、效果演示

二、总结

三、总结回顾


一、效果演示

1.运行查看效果

之前把判断是国内查询、国际查询、国内预定还是国际预定的代码写完了,接下来查看它的实际效果,进入到实际的代码当中,在代码中的:RequestTypeclassifier.classifyByRequest(requestUrl,broadcastRuleMap 处

调用,前面需要添加一个接收 val RequestType,RequestType 是一个 class,里面标记了数据到底是国内查询、国际查询、国内预定还是国际预定,接收过来以后它的数据类型是大写的 RequestType,数据采集完成之后是返回,返回到上面的 filterData 里面,然后又做了输出,以上就是爬虫数据预处理器打标签飞行类型和操作类型的实际的过程,效果如下:运行数据处理程序,发现提示报错。

2.检查并修改

检查错误原因,为数据库的错误方法:Unknow column international,提示为 QueryDB17行出错,可能是读取数据有问题,找到读取数据部分,双击打开查看是否存在错误,提示的错误是 main 方法当未知的列:international,在AnalyzeRuleDB 的第57行,International 后面缺少了.id,修改后右键重新执行,提示运行成功没有报错,也没有效果,没有效果是因为还没有进行爬虫,找到爬虫后右键执行,爬虫现在查询的是 query ao 的,query ao 代表的是expression 中的^.*query.ao.*$,query ao 的数据类型是00,即国内查询。国内查询应该是 National query,因为数据比较单一,爬虫比较单一,所以打出来的数据都是 National 系统,看到这个效果即可表明实际的打标签的过程完成了,而且效果也有了实现,返回的结果是 Request Type 里面的 National 国内的查询,以上就是反爬虫中打标签的第一个飞行类型和操作类型的实际效果。


二、总结

爬虫中数据分类的飞行类型和操作类型,把这个关键代码,关键代码如下:

第一步:读取数据库分类规则,详细的四种规则不进行一一写入,主要代码为:

var RuleMaps-AnalyzeRu

第二步:将规则加载到广告变量

@volatile var broadcastRuleMaps-sc.broadcast (RuleMaps)

读取规则实际代码是很多的,但是并不困难,实际就是读取数据库的规则后拿过来,只不过分为四种情况,四种情况都需要逐步去写,所以需要花费一定时间,具有一定的工作量。

第三步:在 redis 内添加是否需要更新数据分类规则的标识,每批次都从 redis 中读取这个标识,判断是否需要更新数据分类规则每天这个标记

第四步:更新标签。如果不需要更新就直接跳过,不需要额外添加代码,如果需要更新就将重新读取数据库的规则,代码为:RuleMaps-AnalyzeRuleDB.queryRulLeMap(),然后将广播变量进清空,

代码为:broadcastRuleMaps.unpersiste,重新加载新的规则到广播变程当中,

代码为:broadcastRuleMaps sc.broadcast (RuleMaps),并将其改为 false,

代码为:redis.set ("NeedupDateclassifyRule" , "false")

第五步:数据的分类。

首先定义方法:

val requestType:RequestType=

RequestTypeclassifier.classifyByRequest(requesturl,broadcastRueMaps.value)

然后进行四个业务场景的数据读取

//1先在分类的广播变量中获取四种业务场景的规则

//国内直询规则

val nqRuleList=RuleMaps.get("nqRuleList")

//国际查询规则

val iqRuleList=RuleMaps .get("iqRuleList")

//国内预定规则

val nbRuleList=RuleMaps.get ("nbRuleList")

//国际预定规则

val ibRuleList-RuleMaps.get("ibRuleList")

把这四种情况读取过来以后,遍历四种情况进行分析,这里只总结一个场景的遍历方法:

//遍历国内查询规则

for (nqRdle<-nqRuleList if flag){

//使用数据匹配国内查询的规则―若匹配成功表示这个ur1所在的数据就是“国内查询”

if (requestUr 1.matches (nqRule)){

flag=false

//到了这一步就可以断定这个数据的业务类型

requestType=RequestType(FlightTypeEnum.Nationa1,BehaviorTypeEnum.Query)

}

最终返回数据类型 requestType,这里不进行总结,记住在最后存在返回的动作即可。


三、总体回顾

要实现的目标是确定一条数据到底属于哪个业务场景,将四种情况(国内查询00、国际查询10、国内预定01、国际预定11)分析出来,分析过程为:在数据库中把四个业务场景规则全部读取,然后去遍历并放至广播变量中检查是否需要更新,然后用 url 和四个规则一一匹配,匹配上哪个规则该 url 就属于哪种规则,然后将结果返回即可,实际总体难度不大,但是这里面包含了四种情况,每一种情况都需要一步一步去实现,花费了一定的时间。这就是飞行类型-操作类型的实现过程。

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore &nbsp; &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
数据挖掘 编译器 Python
忽略NoData计算多时相遥感影像各个像元的平均值:Python
本文介绍基于Python中whitebox模块,对大量长时间序列栅格遥感影像的每一个像元进行忽略NoData值的多时序平均值求取~
172 2
忽略NoData计算多时相遥感影像各个像元的平均值:Python
|
7月前
|
数据采集 数据挖掘 数据处理
数据清洗的主要步骤包括**理解数据、处理重复值、处理空缺值、处理异常值、数据标准化和数据收集
【4月更文挑战第3天】数据清洗的主要步骤包括**理解数据、处理重复值、处理空缺值、处理异常值、数据标准化和数据收集
337 2
|
25天前
|
存储 机器学习/深度学习 数据可视化
数据集中存在大量的重复值,会对后续的数据分析和处理产生什么影响?
数据集中存在大量重复值可能会对后续的数据分析和处理产生多方面的负面影响
49 10
|
数据采集 机器学习/深度学习 算法
②数据预处理之数据清理,数据集成,数据规约,数据变化和离散化
数据预处理之数据清理,数据集成,数据规约,数据变化和离散化
830 0
②数据预处理之数据清理,数据集成,数据规约,数据变化和离散化
|
7月前
|
数据采集 安全 数据挖掘
【数据挖掘】属性及其类型和数据的统计描述四分位数等详解(图文解释 超详细)
【数据挖掘】属性及其类型和数据的统计描述四分位数等详解(图文解释 超详细)
537 0
|
机器学习/深度学习 数据采集 搜索推荐
特征构造:从原始数据中创造出高效信息
特征构造:从原始数据中创造出高效信息
161 0
|
数据采集 机器学习/深度学习 自然语言处理
实现文本数据数值化、方便后续进行回归分析等目的,需要对文本数据进行多标签分类和关系抽取
实现文本数据数值化、方便后续进行回归分析等目的,需要对文本数据进行多标签分类和关系抽取
205 0
|
机器学习/深度学习 算法
在对数据进行预处理时,怎样处理类别型特征?
在对数据进行预处理时,怎样处理类别型特征?
|
数据可视化
【数据篇】34 # 如何处理多元变量?
【数据篇】34 # 如何处理多元变量?
161 0
【数据篇】34 # 如何处理多元变量?
|
数据采集 消息中间件 存储
数据预处理-航线类型操作类型目标与思路|学习笔记
快速学习数据预处理-航线类型操作类型目标与思路
129 0
数据预处理-航线类型操作类型目标与思路|学习笔记