大数据全系列 教程
1869个小节阅读:466.8k
目录
408考研
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
创建类com.itbaizhan.scala.musicproject.eds.machine.GenerateTmMacRegionStatD
首先判断是否传递参数,没有参数提示:请输入数据日期,格式例如:年月日(20301004)
判断本地运行还是集群运行,分别构建不同参数的SparkSession对象
指定SparkSQL使用的Hive的库baizhan_music
按照省份和城市分组,聚合查询 EDS层TW_MAC_STAT_D
,然后注册临时视图TEMP_MAC_REGION_STAT
xxxxxxxxxx
sparkSession.sql(
s"""
| SELECT PRVC, --省份
| CTY, --城市
| COUNT(MID) AS MAC_CNT, --机器数量
| CAST(SUM(TOT_REV) AS DECIMAL(10,4)) AS MAC_REV,--总营收
| CAST(SUM(TOT_REF) AS DECIMAL(10,4)) AS MAC_REF,--总退款
| SUM(REV_ORDR_CNT) AS MAC_REV_ORDR_CNT,--总营收订单数
| SUM(REF_ORDR_CNT) AS MAC_REF_ORDR_CNT,--总退款订单数
| SUM(CNSM_USR_CNT) AS MAC_CNSM_USR_CNT,--总消费用户数
| SUM(REF_USR_CNT) AS MAC_REF_USR_CNT --总退款用户数
| FROM TW_MAC_STAT_D
| WHERE DATA_DT = ${analyticDate}
| GROUP BY PRVC,CTY
""".stripMargin).createTempView("TEMP_MAC_REGION_STAT")
将数据从TEMP_MAC_REGION_STAT
加载到对应的 EDS层 TM_MAC_REGION_STAT_D
分区表中
xxxxxxxxxx
sparkSession.sql(
s"""
| insert overwrite table TM_MAC_REGION_STAT_D
partition (data_dt=${analyticDate})
select * from TEMP_MAC_REGION_STAT
""".stripMargin)
将TEMP_MAC_REGION_STAT
结果保存至 mysql的songresult.tm_mac_region_stat_d
中,作为DM层结果
xxxxxxxxxx
//将临时视图TEMP_MAC_REGION_STAT_D中的数据添加MySQL的songresult.tm_mac_region_stat_d表中
val prop = new Properties()
prop.setProperty("user",ConfigUtils.MYSQL_USER)
prop.setProperty("password",ConfigUtils.MYSQL_PASSWORD)
prop.setProperty("dirver","com.mysql.jdbc.Driver")
sparkSession.sql(
s"""
|select ${analyticDate} as data_dt,*
|from TEMP_MAC_REGION_STAT_D
|""".stripMargin).write.mode(SaveMode.Overwrite)
.jdbc(ConfigUtils.MYSQL_URL,"tm_mac_region_stat_d",prop)
println("****all finished****")