1.详细描述idmap的整个计算方案

(1)使用SparkSession对象读取用户不同类别的埋点日志,解析并抽取出相应的标识id,使用union进行合并,得到装有汇总标识id的rdd(ids)

(2)利用ids分别构造图计算的vertex集合以及构造图计算的边集合(将出现次数小于2的边过滤掉)

(3)将上一日的idmap映射字典解析成点、边集合,并将之与当日的点边集合进行合并

(4)利用合并后的点、边集合,我们使用spark-graphx构造图,并调用连通子图算法,得到初步结果

(5)将当日的idmp与前一日的idmp做对比,调整用户统一标识(guid)

  

2.详细描述app埋点日志预处理的整个计算方案

1)json解析,解析成功的返回LogBean对象,解析失败的返回null(这样一来,json格式不对、不完整的脏数据就被识别出来了)

2)对上一步结果RDD[LogBean]进行过滤(清掉json不完整的脏数据,清掉不符合规则的数据)

3)数据修正(调整guid,统一命名规范、度量单位规范等)

4)对数据进行字典集成(如利用地理位置映射字典快速将经纬度转换成地区)

5)从集成后的结果中跳出无法解析的gps,写入一个待解析目录,定期通过网络请求某地图的api,得到地址后,将结果添加到本地的地理位置映射字典

6)输出最终结果保存为parquet(或ORC)文件

3.反复敲3遍-idmapping程序、预处理程序

  

4.为什么要地理位置geo字典?为什么要idmp字典?为什么要对app埋点日志预处理?

(1)快速获取用户的商圈信息(大致的地理位置),方便后续的地域维度分析

(2)快速判断日志数据的所属用户,以便于后续进行用户行为分析

(3)清除埋点日志中的一些废弃字段,格式不正确,以及不需要的数据,并且可以将数据处理成便于后续的数据分析的格式

最新文章

  1. 【总结】详细说说@Html.ActionLink()的用法
  2. 对SIL9022/9024的配置
  3. Spring事务管理
  4. codeforces 501 C,D,E
  5. 力软信息化系统快速开发框架 web端+winform端
  6. 打开mysql时,提示 1040,Too many connections
  7. android 数据存储Ⅰ
  8. linux系统下对网站实施负载均衡+高可用集群需要考虑的几点
  9. Cocos2d-JS项目之二:studio基础控件的使用
  10. AlloyTouch实现下拉刷新
  11. wireshark筛选器汇总
  12. CAS Tomcat实现单点登录
  13. C语言工具的简单辨析
  14. 10个利用Eclipse调试Java的常见技巧
  15. session 共享
  16. alpha冲刺第三天
  17. mysql 查询导出(txt,csv,xls)
  18. java解压多层目录中多个压缩文件和处理压缩文件中有内层目录的情况
  19. go build 和 go run区别
  20. JavaScript 中的匿名函数((function() {})();)与变量的作用域

热门文章

  1. 跟着老猫来搞GO,集跬步而致千里
  2. 解决create-react-app 后 npm start or yarn start 中出现 的webpack版本问题
  3. K8S发布策略,无损发布
  4. 监控框架 - prometheus - 参数指标
  5. java.lang.NoSuchFieldError: REFLECTION
  6. c++学习笔记6(结构化程序设计)
  7. SpringCloud升级之路2020.0.x版-35. 验证线程隔离正确性
  8. ubuntu更換清華軟件源
  9. myeclipse重写快捷键
  10. [cf1479E]School Clubs