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

本文涉及的产品
云数据库 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 就属于哪种规则,然后将结果返回即可,实际总体难度不大,但是这里面包含了四种情况,每一种情况都需要一步一步去实现,花费了一定的时间。这就是飞行类型-操作类型的实现过程。

相关文章
|
存储 Java
BigDecimal类型的数据如何保留小数点后四位
BigDecimal类型的数据如何保留小数点后四位
610 0
|
SQL 存储 DataWorks
DataWorks产品使用合集之DataWorks中,配置DataHub数据源如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
402 5
|
前端开发 容灾 安全
Docker Swarm 共享卷
Docker Swarm 共享卷
791 0
|
域名解析 网络协议 CDN
网站接入CDN全流程,共4步!
阿小云网站已通过ICP备案,但因广州节点导致全国访问速度不佳,计划接入CDN以提升速度。以下是接入阿里云CDN的四步流程:1) 开通CDN服务;2) 添加加速域名;3) 验证域名归属权;4) 配置CNAME解析。详细指南见阿里云CDN页面:
2086 0
|
存储 算法 Linux
Linux内核代码中常用的数据结构
Linux内核代码中常用的数据结构
215 0
|
数据挖掘 索引 Python
【100天精通Python】Day57:Python 数据分析_Pandas数据描述性统计,分组聚合,数据透视表和相关性分析
【100天精通Python】Day57:Python 数据分析_Pandas数据描述性统计,分组聚合,数据透视表和相关性分析
343 0
|
机器学习/深度学习 人工智能 并行计算
谷歌下一代AI架构、Jeff Dean宣传大半年的Pathways终于有论文了
谷歌下一代AI架构、Jeff Dean宣传大半年的Pathways终于有论文了
691 0
|
数据采集 传感器 人工智能
|
Python
Anaconda使用Python虚拟环境的方法
本文介绍在Anaconda环境下,创建、使用与删除Python虚拟环境的方法~
564 1
Anaconda使用Python虚拟环境的方法
crontab设置定时任务脚本文件每秒运行一次,每个月最后一天的21点到22点 每20分钟(1200秒)执行一次
crontab设置定时任务脚本文件每秒运行一次,每个月最后一天的21点到22点 每20分钟(1200秒)执行一次
1412 0