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

本文涉及的产品
云数据库 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
相关文章
|
10月前
|
搜索推荐 Linux Python
VET:一个基于R语言的VCF数据提取工具,支持按基因ID、物理位置、样品名称提取指定变异信息
VET:一个基于R语言的VCF数据提取工具,支持按基因ID、物理位置、样品名称提取指定变异信息
|
1月前
|
机器学习/深度学习 数据可视化
|
1月前
|
测试技术
数据分享|R语言回归,虚拟变量和交互项,假设检验:F检验、AIC和 BIC分析学生成绩数据附自测题(下)
数据分享|R语言回归,虚拟变量和交互项,假设检验:F检验、AIC和 BIC分析学生成绩数据附自测题
|
1月前
stata对包含协变量的模型进行缺失值多重插补分析
stata对包含协变量的模型进行缺失值多重插补分析
|
1月前
|
算法 搜索推荐 数据挖掘
图计算中的图算法有哪些常见的类型?请举例说明每种类型的算法。
图计算中的图算法有哪些常见的类型?请举例说明每种类型的算法。
55 0
|
1月前
|
数据采集 安全 数据挖掘
【数据挖掘】属性及其类型和数据的统计描述四分位数等详解(图文解释 超详细)
【数据挖掘】属性及其类型和数据的统计描述四分位数等详解(图文解释 超详细)
122 0
|
10月前
|
Linux 测试技术 数据处理
R语言丨根据VCF文件设计引物,自动识别两样本差异SNP位点,调用samtools获取上下游参考序列,快速得到引物序列
R语言丨根据VCF文件设计引物,自动识别两样本差异SNP位点,调用samtools获取上下游参考序列,快速得到引物序列
|
10月前
|
机器学习/深度学习 自然语言处理
【论文速递】ACL 2022 - 查询和抽取:将事件抽取细化为面向类型的二元解码
事件抽取通常被建模为一个多分类问题,其中事件类型和论元角色被视为原子符号。这些方法通常仅限于一组预定义的类型。
98 1
|
11月前
|
数据采集 机器学习/深度学习 自然语言处理
实现文本数据数值化、方便后续进行回归分析等目的,需要对文本数据进行多标签分类和关系抽取
实现文本数据数值化、方便后续进行回归分析等目的,需要对文本数据进行多标签分类和关系抽取
159 0
|
机器学习/深度学习 算法
在对数据进行预处理时,怎样处理类别型特征?
在对数据进行预处理时,怎样处理类别型特征?

热门文章

最新文章