大数据全系列 教程
1869个小节阅读:467.9k
目录
408考研
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
首先判断是否传递参数,没有参数提示:请输入数据日期,格式例如:年月日(20301010)
判断本地运行还是集群运行,分别构建不同参数的SparkSession对象
指定SparkSQL使用的Hive的库baizhan_music
获取微信全量用户信息TO_YCAK_USR_WX_D
,返回DataFrame对象usrWx
REG_CHNL固定值1 -- 1-微信渠道,2-支付宝渠道,3-QQ渠道,4-APP渠道
WX_ID AS REF_UID, --微信账号
substring(REG_TM,1,8) AS REG_DT, --注册日期
substring(REG_TM,9,6) AS REG_TM, --注册时间
"2" AS USR_TYPE, --用户类型 1-企业 2-个人(不存在该列,指定固定值)
NULL AS IS_CERT, --实名认证 NULL AS IS_STDNT --是否是学生
获取支付宝用户全量信息TO_YCAK_USR_ALI_D
,返回DataFrame对象usrAli
REG_CHNL固定值2 -- 1-微信渠道,2-支付宝渠道,3-QQ渠道,4-APP渠道
ALY_ID AS REF_UID, --支付宝账号
substring(REG_TM,1,8) AS REG_DT, --注册日期 substring(REG_TM,9,6) AS REG_TM, --注册时间 NVL(USR_TYPE,"2") AS USR_TYPE, --用户类型 1-企业 2-个人
获取QQ 用户全量信息TO_YCAK_USR_QQ_D
,返回DataFrame对象usrQQ
REG_CHNL固定值3 -- 1-微信渠道,2-支付宝渠道,3-QQ渠道,4-APP渠道
QQID AS REF_UID, --QQ账号
substring(REG_TM,1,8) AS REG_DT, --注册日期 substring(REG_TM,9,6) AS REG_TM, --注册时间
"2" AS USR_TYPE, --用户类型 1-企业 2-个人(不存在该列,指定固定值)
NULL AS IS_CERT, --实名认证 NULL AS IS_STDNT --是否是学生
获取APP用户全量信息 TO_YCAK_USR_APP_D
,返回DataFrame对象usrApp
"4" AS REG_CHNL, -- 1-微信渠道,2-支付宝渠道,3-QQ渠道,4-APP渠道 APP_ID AS REF_UID, --APP账号 NULL AS LOG_MDE, --注册登录方式 substring(REG_TM,1,8) AS REG_DT, --注册日期 substring(REG_TM,9,6) AS REG_TM, --注册时间 0 AS SCORE, --累计积分 "2" AS USR_TYPE, --用户类型 1-企业 2-个人(不存在该列,指定固定值) NULL AS IS_CERT, --实名认证 NULL AS IS_STDNT --是否是学生
将以上四个DataFrame对象取并集,获取各个平台所有的用户信息
xxxxxxxxxx
val allUsrInfo = usrWx.union(usrAli).union(usrQQ).union(usrApp)
从TO_YCAK_USR_LOGIN_D
用户登录数据增量表 获取指定日期内登录的用户UID
,并对UID
去重,然后与所有用户信息关联获取当日用户详细信息,注册临时视图TEMP_USR_ACTV
将以上当日计算得到的活跃用户信息保存至 TW_USR_BASEINFO_D 日增量表中
获取7天之前的日期
获取7日活跃用户信息 保存至 DM 层,保存到MySQL的songresult
库下的 user_7days_active
使用case when语句将REG_CHNL数值做如下转换
1->微信,2->支付宝,3->QQ,4->APP,其它->未知
用case when语句将GDR数值做如下转换:
1->男 2->女 其它->不明