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

本文涉及的产品
云数据库 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
目录
打赏
0
0
0
0
55
分享
相关文章
BigDecimal类型的数据如何保留小数点后四位
BigDecimal类型的数据如何保留小数点后四位
482 0
安卓与iOS系统的用户界面设计对比分析
本文通过对安卓和iOS两大操作系统的用户界面设计进行对比分析,探讨它们在设计理念、交互方式、视觉风格等方面的差异及各自特点,旨在帮助读者更好地理解和评估不同系统的用户体验。
555 1
《探秘Q-learning:解锁其背后的基本假设》
Q-learning是强化学习领域的重要算法,广泛应用于机器人控制、游戏策略和资源管理等场景。它基于马尔可夫决策过程假设,认为未来状态仅依赖当前状态和动作,简化了问题复杂度。此外,Q-learning还假设奖励可量化、环境具有重复性、学习时间无限及动作离散,这些假设为智能体提供了明确的学习目标和机制,使其能高效地探索最优策略。尽管现实情况未必完全符合这些假设,Q-learning及其变种算法已在多个领域取得了显著成功。
146 28
2024 年 16 个适用于 Linux 的开源云存储软件 (下)
2024 年 16 个适用于 Linux 的开源云存储软件 (下)
2024 年 16 个适用于 Linux 的开源云存储软件 (下)
阿里云服务器通用型g7与通用型g8y实例深度对比及选择参考
在阿里云提供的各种通用型实例规格中,通用型g7和通用型g8y实例因其出色的性能与广泛的适用性而备受关注,对于想要购买2核8G、4核16G、8核32G等处理器与内存比为1:4配置的云服务器用户来说,这两个实例规格通常是选择比较多的,它们都主要适用于中小型数据库系统、缓存、搜索集群等各种类型的企业级应用等场景,本文将对通用型g7和通用型g8y实例进行对比,包括其架构、处理器、存储与网络能力、适用场景、指标数据、收费标准以及最新活动价格,以供参考和选择。
阿里云服务器通用型g7与通用型g8y实例深度对比及选择参考
DataWorks产品使用合集之DataWorks中,配置DataHub数据源如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
365 5
网站接入CDN全流程,共4步!
阿小云网站已通过ICP备案,但因广州节点导致全国访问速度不佳,计划接入CDN以提升速度。以下是接入阿里云CDN的四步流程:1) 开通CDN服务;2) 添加加速域名;3) 验证域名归属权;4) 配置CNAME解析。详细指南见阿里云CDN页面:
1565 0
Docker Swarm 共享卷
Docker Swarm 共享卷
764 0
Linux内核代码中常用的数据结构
Linux内核代码中常用的数据结构
181 0
AI助理
登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问

你好,我是AI助理

可以解答问题、推荐解决方案等