数据预处理-数据解析-总结及预定数据分析|学习笔记

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
全局流量管理 GTM,标准版 1个月
简介: 快速学习数据预处理-数据解析-总结及预定数据分析

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

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


数据预处理-数据解析-总结及预定数据分析


内容介绍:

一、课前小结

二、预定类数据解析介绍


一、课前小结

上节课学习了查询型的解析。所以进行总结。

第一个,读取数据库的规则。代码如下:

var queryRule = AnalyzeRuleDB.queryRule(behaviorType = 0)

然后就是加载到广播变量。下面是解析规则的代码:

@volatile var broadcastQueryRules=sc.brocast(queryRule)

加载到广播变量以后就是去判断它是否需要更新,判断是否需要更新的代码很长,所以这里不做展示。

接下来就是进行解析,下面是解析的代码,也就是解析的规则:

val queryRequestData =

AnalyzeRequest.analyzeQueryRequest( requestType,

requestMethod,contentType,requestUrl,requestBody,travelType, broadcastQueryRules.value)

至于数据解析的代码,因为有很多。这样就实现查询型的数据解析工作。


二、预定类数据解析介绍

其实预定的解析思路跟查询型的解析思路一模一样,只不过读取预定的数据到程序里面来的时候,behaviortype 的参数为1,1代表预定

var bookRule=AnalyzeRuleDB.queryRule(behaviorType = 1)

如果这个参数是1,看下面这行代码:

val sql: String = "select * from analyzerule where

behavior_type =" + behaviorType

那么变量就是1,所以在数据库当中要把 behavior_type 是1的查出来,看下图发现,这里有三个数据:

image.png

把它们查出来,这些就是预定类的数据。然后要对这三条数据的每一个字段,查出来再进行封装,封装完后返回到如下代码所示位置。

//读取数据库内的数据解析规则到预处理程序(将表内的所有查询规则数据全部读取到程序内)

//数据解析规则--查询类

var queryRule=AnalyzeRulgDB.queryRule(0)

@volatile var broadcastQueryRules=sc.broadcast(queryRule)

//数据解析规则--预定类

var bookRule=AnalyzeRuleDB.queryRule(1)

@volatile var

broadcastBookRules=sc.broadcast(bookRule)

然后添加到广播变量:

@volatile var broadcastBookRules=sc.broadcast(bookRule)

添加到广播变量后依然需要更新,这里面是也是用 NeedUpDataAnalyzeRule ,代码跟查询类一模一样,不过预定类用的是 book ,behaviortype是1,在这里面预定的数据也要进行重新读取,然后重新清空广播变量,重新载入过滤数据。

代码://环判断是否需要更新

val

needupDataAnalyzeRule=redis.get("NeedupDataAnalyzeRule")

//如果获取的数据是非空的,并且这个值是 true, 那么就进行数据的更新操作

if( !needupDataAnalyzeRule.isEmpty&&

needupDataAnalyzeRule.toBoolean){

//重新读取 mysql 的数据

queryRule=AnalyzeRuleDe.queryRule( behaviorType =0)

bookRule=AnalyzeRuleDB.queryRule( behaviorType = 1)

//清空广播变量中的数据

broadcastQueryRules.unpersist()

broadcastBookRules.unpersist()

//重新载入新的过滤数据

broadcastQueryRules=sc.broadcast(queryRule)

broadcastBookRules=sc.broadcast( bookRule)

//更新完毕后,将 Redis 中的 true  改成 false

redis.set("NeedupDataAnalyzeRule","false")

}

最后一步就是解析。实际上预定的解析和查询的解析是一模一样的,而且思路也是一样的,预定数据的实现的目标是解析出预定数据当中的出发地,目的地和起飞时间。但是在这里,由于我们拿不到数据,所以这个就暂时做不了,但是虽然这个解析没有数据,最差的就是解析都是空,但是还是要解析一下,因为后面的计算也许会用到,不管是预定类的数据还是查询类的,都有可能。

所以把这个也解析一下,解析思路包括处理流程都是一样的,解析规则的代码直接写在下面:

val bookRequestData =  AnalyzeBookRequest.analyzeBookRequest(requestType,requestMethod, contentType, requestUrl, requestBody,

travelType,broadcastBookRules.value)

那这个就是去解析预定类数据的过程,之前查询类解析的时候有一个 analyzeRequest,而预定类解析里面有一个

analyzebookRequest ,它们的参数都是一样的。这两个的位置都在提供的 business process 里面。

预定类的里面实际上思路和查询类的思路是一模一样的。它的数据解析代码也是已经写好了的,大约在100行左右。下面就是解析预定数据的部分代码:

image.png

这里面需要的参数,在下面的代码里就能找到:

val bookRequestData =  AnalyzeBookRequest.analyzeBookRequest(requestType,requestMethod, contentType, requestUrl, requestBody,

travelType,broadcastBookRules.value)

所以把参数都传递进来,进来以后进行解析,解析完成也能解析出:出发地和目的地,因为没有数据,所以看不到效果,但这个过程必须要有。这个就是预定类的解析过程的过程。因为首先没有数据,看不到效果,第二,读取规则,加载到广播变量,判断是否需要更新,前面已经进行了学习,所以这里快速通过。以上就是预定类的数据解析。

相关文章
|
3月前
|
SQL 数据可视化 大数据
从数据小白到大数据达人:一步步成为数据分析专家
从数据小白到大数据达人:一步步成为数据分析专家
300 92
|
1月前
|
数据采集 JSON 数据可视化
JSON数据解析实战:从嵌套结构到结构化表格
在信息爆炸的时代,从杂乱数据中提取精准知识图谱是数据侦探的挑战。本文以Google Scholar为例,解析嵌套JSON数据,提取文献信息并转换为结构化表格,通过Graphviz制作技术关系图谱,揭示文献间的隐秘联系。代码涵盖代理IP、请求头设置、JSON解析及可视化,提供完整实战案例。
148 4
JSON数据解析实战:从嵌套结构到结构化表格
|
1月前
|
JSON 监控 网络协议
Bilibili直播信息流:连接方法与数据解析
本文详细介绍了自行实现B站直播WebSocket连接的完整流程。解析了基于WebSocket的应用层协议结构,涵盖认证包构建、心跳机制维护及数据包解析步骤,为开发者定制直播数据监控提供了完整技术方案。
|
1月前
|
机器学习/深度学习 JSON 算法
淘宝拍立淘按图搜索API接口系列的应用与数据解析
淘宝拍立淘按图搜索API接口是阿里巴巴旗下淘宝平台提供的一项基于图像识别技术的创新服务。以下是对该接口系列的应用与数据解析的详细分析
|
4月前
|
存储 数据采集 数据可视化
Pandas数据应用:电子商务数据分析
本文介绍如何使用 Pandas 进行电子商务数据分析,涵盖数据加载、清洗、预处理、分析与可视化。通过 `read_csv` 等函数加载数据,利用 `info()` 和 `describe()` 探索数据结构和统计信息。针对常见问题如缺失值、重复记录、异常值等,提供解决方案,如 `dropna()`、`drop_duplicates()` 和正则表达式处理。结合 Matplotlib 等库实现数据可视化,探讨内存不足和性能瓶颈的应对方法,并总结常见报错及解决策略,帮助提升电商企业的数据分析能力。
199 73
|
2月前
|
SQL 人工智能 数据可视化
数据团队必读:智能数据分析文档(DataV Note)五种高效工作模式
数据项目复杂,涉及代码、数据、运行环境等多部分。随着AI发展,数据科学团队面临挑战。协作式数据文档(如阿里云DataV Note)成为提升效率的关键工具。它支持跨角色协同、异构数据处理、多语言分析及高效沟通,帮助创建知识库,实现可重现的数据科学过程,并通过一键分享报告促进数据驱动决策。未来,大模型AI将进一步增强其功能,如智能绘图、总结探索、NLP2SQL/Python和AutoReport,为数据分析带来更多可能。
124 21
|
3月前
|
存储 搜索推荐 大数据
数据大爆炸:解析大数据的起源及其对未来的启示
数据大爆炸:解析大数据的起源及其对未来的启示
225 15
数据大爆炸:解析大数据的起源及其对未来的启示
|
2月前
|
Java API 数据处理
深潜数据海洋:Java文件读写全面解析与实战指南
通过本文的详细解析与实战示例,您可以系统地掌握Java中各种文件读写操作,从基本的读写到高效的NIO操作,再到文件复制、移动和删除。希望这些内容能够帮助您在实际项目中处理文件数据,提高开发效率和代码质量。
57 4
|
1月前
|
缓存 监控 搜索推荐
【实战解析】smallredbook.item_get_video API:小红书视频数据获取与电商应用指南
本文介绍小红书官方API——`smallredbook.item_get_video`的功能与使用方法。该接口可获取笔记视频详情,包括无水印直链、封面图、时长、文本描述、标签及互动数据等,并支持电商场景分析。调用需提供`key`、`secret`和`num_iid`参数,返回字段涵盖视频链接、标题、标签及用户信息等。同时,文章提供了电商实战技巧,如竞品监控与个性化推荐,并列出合规注意事项及替代方案对比。最后解答了常见问题,如笔记ID获取与视频链接时效性等。
|
3月前
|
JSON 前端开发 搜索推荐
关于商品详情 API 接口 JSON 格式返回数据解析的示例
本文介绍商品详情API接口返回的JSON数据解析。最外层为`product`对象,包含商品基本信息(如id、name、price)、分类信息(category)、图片(images)、属性(attributes)、用户评价(reviews)、库存(stock)和卖家信息(seller)。每个字段详细描述了商品的不同方面,帮助开发者准确提取和展示数据。具体结构和字段含义需结合实际业务需求和API文档理解。

热门文章

最新文章

推荐镜像

更多