商圈库_功能_思路 | 学习笔记

简介: 快速学习商圈库_功能_思路。

开发者学堂课程【2020版大数据实战项目之DMP广告系统(第六阶段)商圈库_功能_思路】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/681/detail/11831


商圈库_功能_思路

 

内容介绍:

一. 数据计算平台:批量计算,流计算

二. 生成功能表的目的和原因

三. 功能的含义

四. 数据的处理方式

五. 高德api的查询

 

一.数据计算平台:批量计算,流计算

1.数据处理的思路呢?

首先整个的数据计算平台大概有两种,第一种是批量计算,第二种是流计算。批量计算是一批一批的计算,而流计算是一个一个的计算。现在这个场景是批量计算。商圈库是要保留所有的这个经纬度对应的商圈信息,也就是最终的商圈库所生成的这个表,应该是这种形式的。

首先有一个 Key,这个 Key,可以对应的是一个 location 信息,或者就定义为 geo。这个geo对应第一个列,第二个列应该对应一个商圈信息,那就是area信息,最终的这个表当中可以只有两个内容,一个是 geo 也就是地理位置,还有一个 area 是商圈的名字。

 

二.生成功能表的目的和原因

接下来要思考的一件事情就是,如果要生成 geo.area 这样的一张表,那为什么要生成这张表?生成这张表的意义何在?

先复制 private val AREA_TABLE_NAME=BUSINESS_AREA’’这个注释,写到类上。

做这个功能最终的结果为:geo,area  ,这样的一张表有两列,那要做这个功能的目的是什么?为什么要做这个功能?

如果不做这个表,在生成标签时,因为这个商圈库是为标签服务提供的,既然它是为标签提供服务的,那么在生成标签的时候要为某一条数据生成一个叫做商圈的标签,所以就要在每一条数据生成标签的时候都要去访问一下高德。

 

三.功能的含义

这个高德的api不是一直能用的,每天是有使用次数的。所以就可能会出现失败的情况。接下来就可以再针对数据来进行一次处理,获取其商圈信息,缓存下来,这个缓存就是商圈表。其实要做这个商圈库,只是把这个商圈的信息挪到本地而已,如果不做这个功能也可以从高德里面拿到,在生成标签时拿到就行。

但是每一次生成标签的时候都去拿,高德会限制不会让一直查,它是有次数限制的,查多了就不让再查了。

这个功能最核心的一点就是按照经纬度的范围,作为 key,商圈信息作为 value,生成一张表。

也就是在这个范围内的所有的经纬度,对应的都是这个商圈。这样就可以提高命中率。从而就不需要每一次都去查高德,查的多了基本上就有整个高德的数据库。所以就可以节省网络资源,速度相对来说也会更快一些,这是这个功能的含义。

 

四.数据的处理方式

这个功能简单介绍一下,有两种数据的处理方式,对于商圈标签生成时数据可能是流式的,也可能是批样的处理。

如果是流式,那么就是来一条数据就去查询一下商圈信息,那如果是批式,就是来一批就去查询商圈信息,并统一进行计算。

最终目的不能每一次都去读取全量的数据生成标签,应该尽量的减少查询高德api的次数。那怎么去做到减少查询高德的 api 的次数呢?这个办法也是比较简单的。先读取 O D S 层的数据,生成每条数据所在的地理位置的范围。其实也就是表中的 key

读取完 O D S 层的数据以后再和商圈库做一次相应的剪辑。假如说这个 key 已经存在了,那么就没有必要再去查询高德的 api 了。就和商圈库做一次差集,如果数据key存在则去掉这条数据,再进行高德 api 的查询。虽然说起来容易,但是其实并没有那么好做。

 

五.高德api的查询

接下来就可以再去读取一张表,这张表就读取已经生成的area,这是已经生成的商圈库,还要再读取出来,那么整条代码就是:

val areaOption=spark. read kuduTable (AREA_TABLE_NAME), (AREA_TABLE_NAME

If(sourceceOption.isEmpty)return这一行代码删除,就有以下两个代码:

val areaOption=spark. read kuduTable (AREA_TABLE_NAME)

Val soureOption=spark. read kuduTable(ODS_TABLE_NAME)

 

这两个代码都是Option,那这个area有可能是不存在的,所以就可以去判断,因为这个代码不分source,所以当这个代码出现

if odsOption.isDefined, 说明ods表已经存在了,并且整个代码:if odsOption.isDefined && areaoption isEmpty,也就是说明不存在area商圈库的这张表,那么这就是一种处理逻辑。

走到这里说明这个ods表是存在的,但是商圈表不存在,就意味着在这个分支中,不需要进行差集。

那么代码 else if(odsoption.isDefined&& areaOption). isDefined  肯定也是存在的,并且这个 option 也是存在的,那么两个东西都存在。其实不要 else 也是一样,都做一个全量的判断,假如说这个 odsoption 是存在的,但是这个 area option 不存在,商圈和ods 两张表都存在。

这里说明 ods 表是存在的,商圈表也存在,这时就说明要先进行差集,去掉已有的数据,再查询高德Api。这就是一个大致的逻辑。这个逻辑还是稍微有一点绕,虽然绕但还是有必要这样去做。这就是最终的结果。

接下来就可以在外部去给定一个结果,这个结果就是一个 result,这个 result 暂且可能为空。它是一个 data frame 的类型,到最后判断 data frame 是否存在,将它Import 一下。到最后数据落地时,判断一下 result,如果它不等于空,就进行相应的落地。走到这里,说明数据至少处理过了,所以可以进行落地。

这就是大致的逻辑,再梳理一遍,梳理一遍以后,给一个 nul l,就可以进行后续的编写了。如下图所示:

1.png

 

当然这个逻辑是比较复杂的,虽然没有标签生成逻辑那么绕,但是稍微有一点复杂,那么这个章节就先暂时告一段落。

相关文章
|
7月前
|
人工智能 自然语言处理 供应链
电商运营需频繁跨平台操作?实在 Agent 能否实现 “一键自动化”?
RPA(机器人流程自动化)并非物理机器人,而是模拟人类操作的“数字员工”。它通过自动化重复性工作,如数据录入、报表处理等,解放人力,提升效率。从财务对账到人力资源管理,RPA已广泛应用于各行各业。随着AI加持,第三代RPA如实在Agent具备视觉识别与自然语言理解能力,实现“说句话就能干活”的智能自动化。它不是替代人类,而是让人专注创造与决策,成为数字化转型的核心力量。
391 1
|
机器学习/深度学习 存储 自然语言处理
基于AIGC的智能化数据资产盘点方案
基于AIGC的智能化数据资产盘点方案
724 2
基于AIGC的智能化数据资产盘点方案
|
机器学习/深度学习 人工智能 搜索推荐
人工智能发音评估(Artificial Intelligence Pronunciation Scoring, AI-PS)
人工智能发音评估(Artificial Intelligence Pronunciation Scoring, AI-PS)
1815 2
|
6月前
|
人工智能 JSON API
告别“玩具”:如何构建具备业务闭环能力的AI Agent?(附智能体来了西南总部技术实践路径)
2025年被视为“智能体元年”,LLM正从对话走向行动。本文基于“智能体来了(西南总部)”实践经验,提出“感知-决策-执行”三层架构,详解Agent开发的全栈路径:从Prompt工程、Workflow编排到Python代码集成,助力开发者掌握“Prompt + Python + Workflow”核心技能,推动企业数字化转型。
547 1
|
4月前
|
人工智能 搜索推荐 网络安全
OpenClaw(Clawdbot)阿里云/本地部署图文教程,附大模型Manus/MaxClaw区别解析
“OpenClaw和Manus到底有啥不一样?”“部署时终端报错不断,太折磨人了”——这是2026年OpenClaw爆火后,用户后台留言最集中的两个问题。作为能接管电脑自主干活的AI代理工具,OpenClaw、Manus、MaxClaw因前端形态相似,让不少用户陷入认知混淆;而部署流程中的技术门槛,更是让很多新手望而却步。
2250 5
|
5月前
|
运维 JavaScript 前端开发
拿 GLM-5 重构了一个真实项目,跟 Claude Opus 比了比
GLM-5 正式迈向“Agentic Engineering”:实测其Agent在1.2万行Node.js项目中完成Express路由迁移,8文件全改、测试全过,仅需微调2处;Benchmark紧追Claude Opus,开源模型第一。适合后端重构、文档生成与长周期运维,尚不擅前端与模糊需求。
3040 1
|
测试技术 Linux 网络安全
【App Services】App Service报错远程证书无效 - "The remote certificate is invalid according to the validation procedure"
在开发环境中,新部署的应用(App Service)无法与 Salesforce 的远程端点建立 SSL/TLS 连接,报错显示证书无效。经分析,防火墙启用了 SSL Inspection,插入了私有 CA 签发的中间证书,导致 App Service 无法验证。解决方案包括禁用 SSL Inspection、设置 `WEBSITE_LOAD_ROOT_CERTIFICATES` 环境变量或临时禁用代码中的 SSL 验证(仅限测试环境)。
396 8
|
开发者 人工智能 自然语言处理
欢迎使用通义灵码
灵码使用指南!一键收藏。
146688 31
|
SQL 数据库 数据库管理
数据库SQL语句详解与应用实例
随着信息技术的飞速发展,数据库管理系统已成为各类企业和组织不可或缺的一部分。结构化查询语言(SQL)作为数据库管理系统的核心语言,掌握其用法对于任何数据库管理员和开发人员来说都至关重要。本文将详细介绍数据库SQL语句的基本语法、功能及其在实际应用中的使用场景。一、SQL语句概述结构化查询语言(SQL
808 3
|
JSON 缓存 JavaScript
【HTTP】请求“报头”(Host、Content-Length/Content-Type、User-Agent(简称 UA))
【HTTP】请求“报头”(Host、Content-Length/Content-Type、User-Agent(简称 UA))
861 2

热门文章

最新文章