离线计算-数据预处理(指标计算前)|学习笔记

简介: 快速学习离线计算-数据预处理(指标计算前)

开发者学堂课程【大数据实战项目 - 反爬虫系统(Lua+Spark+Redis+Hadoop框架搭建)第七阶段离线计算-数据预处理(指标计算前)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/675/detail/11739


离线计算-数据预处理(指标计算前)


内容简介:

一、表 request 中将所有黑名单数据读取出来

二、查询转换率必须的字段和注册成 TransforRateNeeded 表

三、打阶段标签(自定函数)

四、FlowID 不为空时对应为爬虫

五、代码准备完后,整体运作


一、表request中将所有黑名单爬虫数据读取出来

(1)、读取黑名单数据(包含非爬虫数据)

代码

Val AddSpiderIag=sqlContext.sql(sqlText.sql=”select*from request left outer join SpiderIP where request remoteAddr=”SpiderIP,remoteAddr”

因为数据表中还有一批数据是黑名单,所以要将其剔除。

要在数据当中过滤出所有黑名单的数据,把不是爬虫的都过滤掉。

原始数据是包含黑名单的数据,爬虫已经了两张表,所以两相对比以下就可以将数据提取出来。

最后的 sql 语句已经写好了,那执行最后一句 select 的*from request,查询所有的数据在这个表,这个就是通过离线预处理处理完以后的数据直接写到 HDFS,这些数据也就是我们流程当中经4步骤处理完的顺序写的 Kafka,5-1步骤中读过来的数据直接写到 HDFS 去,这批数据里面包含爬虫,也包含非爬虫那接下来要把所有的分爬虫剔除掉。

(2)、去除筛选出来的黑名单数据中的非爬虫数据

where 这个 request 的 remoteAddr 等于 spider ,等于 remoteAddrspider 里有 remoteAddr,spider 识别出来的 spider 上的IP,而这里也有一个 remoteAddr,当 remoteAddr 数据相等的时候,这个数据就爬虫,而要找它相等的,那就相当于把所有的爬虫数据全部都过滤出来了

到这里面以后我们处理完的结果就是返回的结果,就是所有的爬虫数据。而预处理以后的那些不是爬虫的数据就都过滤掉了


二、查询转换率必须的字段和注册成TransforRateNeeded表

(1)、查询转换率

查询转化率,必须字段查询转换的时候,我们大约有21个字段,但这21个字段不是所有的字我们都能用得上,不是所有的资料我们都有需要,大家查询的数据,就是查询转化,我们要支撑这些报表,需要用到哪些字段呢?

实际上用到的字段只有六个,分别为:requestJSESSIONID、Stagetape、FlowID、traveType、flightType

(2)、注册成TransforRateNeeded表

必须的字段注册成了一张表,字段少了,从21个变成6个,但是函数没少

然后查询还是前面的这个查询21个字段,又用这21个字段把时间查出来,时间查出来以后,我把时间T进行了替换,时间就有了,也就是这个数据里面的时间抽取出来,然后去进行一个截取,就是这个 valueOf,把它转化成了这个时间,先处理好,后面我们需要使用。


三、打阶段标签(自定函数)

代码

sqlContext.udf.register(name=”Stage”,(request:String)=>{

if (request.matches(regex=”^,*/bookingnew/.*$”)//预定,商城

|| request.matches(regex=”^.*/bookingGroup/.*$”)

||request.matches(regex=”^.*/ita?int1/zh/shop/.*$”)){

“1”

{else if (request.matches(regex=”^.*/modules/permissionnew/.*$”)//乘客信息

||request.matches(regex=”^.*/ita/int1/zh/permissionnew/.*$”)){

//支付

3

}else{

//其他,查询等操作

“0”

}

标签实际上是一个自定义函数,它的参数是旅客,我们前面把旅客自查出来6个字里面第1个就是 request,然后我们传输 request,并且进行判断,检测客户的路径UIL与设置的任意一个条件是否能匹配上,能,就返回一个1,如果和下面两个条件能匹配的上,那我就返回一个2,如果之后的条件匹配上了,我就返回一个3,否则我就返回个0

也就是0123返回这个值。1代表进入商城,2代表乘客信息,3代表支付,0代表其他。

三个流程不断深入,引导客户完成界面操作。


四、FlowID不为空时对应为爬虫(第二个udf函数)

代码

sqlContext.udf.register(name=”Spider”,(FlowID:string)=>{if(FlowID==nu11||”nu11”.equalsIgnoreCase(FlowID)){//非爬虫”0”}else{//爬虫”1”}

判断数据是不是爬虫,传入 flowID,流程 ID,如果它等于或者是等于这个字符串,那么就表示他不是爬虫,如否则,也就是只要它里面有数据它就虫。


五、代码准备完后,整体运作

代码

Val request1=sqlContext.sql(sqlText=”select request,JSESSIONID,Stage(request)as StageTag,Spider(FlowID) as Spoder”flightType,trave1Type from TransformRateNeeded”)

//request1.show(20)

//从表TranformRateNeeded中过滤掉SEESSIONID为空的数据Val request1 transformed=request1,filter(request1(“JSESSIONID”),contains(“NULL”))

写入一段 sql 函数,执行上面写道的两个udf自定义函数,以及飞行利用查询率找到的六个字段组成的TranformRateNeeded 表格。

相关文章
|
Java Spring 容器
Spring系列文章:Bean的获取⽅式
Spring系列文章:Bean的获取⽅式
379 0
|
数据采集 存储 SQL
数据中台全景架构及模块解析!一文入门中台架构师!
数据中台全景架构及模块解析!包括数据采集、数据存储、数据开发处理、数据资产管理、数据质量和安全、数据服务。一文入门中台架构师!
|
关系型数据库 MySQL 索引
MySQL数据表添加字段的三种方式
MySQL数据表添加字段的三种方式
9342 0
|
运维 关系型数据库 MySQL
【运维日常】运维必备的 免费 在线画图工具,真的很好用!_和processon类似的在线画图
【运维日常】运维必备的 免费 在线画图工具,真的很好用!_和processon类似的在线画图
【运维日常】运维必备的 免费 在线画图工具,真的很好用!_和processon类似的在线画图
|
人工智能
探秘写歌词的技巧和方法:让你的文字唱出旋律,妙笔生词AI智能写歌词软件
在音乐世界里,歌词是触动人心的灵魂。本文介绍如何掌握写歌词的技巧,包括灵感捕捉、结构布局、语言运用等,并推荐《妙笔生词智能写歌词软件》作为创作助手,助你轻松创作动人心弦的歌词。
|
JavaScript
使用Vue+Textarea实现在文本内容变化时自适应高度
这篇文章提供了Vue 2和Vue 3中实现Textarea在文本内容变化时自适应高度的示例代码和方法。
1011 0
使用Vue+Textarea实现在文本内容变化时自适应高度
|
分布式计算 安全 Hadoop
Hadoop 集群一直处于安全模式,强制退出后出现数据丢失警告。解决方法
本文介绍了Hadoop集群安全模式的相关命令和问题解决。当集群处于安全模式时,可使用`hdfs dfsadmin -safemode get`检查状态,`enter`进入,`leave`或`forceExit`离开。若因数据块不一致导致安全模式持续,可通过强制退出,然后删除丢失数据块的文件以恢复正常。如果遇到权限问题,可以使用`chmod`授权或关闭HDFS权限验证(不推荐),配置修改后需重启集群生效。
1660 0
Hadoop 集群一直处于安全模式,强制退出后出现数据丢失警告。解决方法
|
存储 SQL 关系型数据库
ClickHouse(09)ClickHouse合并树MergeTree家族表引擎之MergeTree详细解析
ClickHouse的MergeTree系列引擎是其高性能大数据存储的核心,特别适合大量数据的快速插入。数据按主键排序,支持分区和数据副本,提供数据采样功能。建表时,通过`ENGINE = MergeTree()`指定引擎,`ORDER BY`指定排序键,可选`PARTITION BY`分区,`SAMPLE BY`进行采样。此外,MergeTree支持多种索引和设置,如`index_granularity`控制索引粒度。查询时,ClickHouse利用主键和索引来高效检索数据,尤其在使用等值或范围条件时。
420 0
下一篇
开通oss服务