头歌 警务大数据之上网相关指标批处理 特定时间段频繁上网,有没有能人帮忙解决一下
任务描述
本关卡属于警务大数据中的一个业务指标统计,从网吧的上网人员日志记录中进行批量计算,对上网时间异常、上网地点异常的人员进行统计,对有犯罪动机的人员进行监控、预警。
本关任务:统计出触及特定时间段频繁上网指标的人员。
相关知识
为了掌握本关知识,你需要掌握如下知识:
指标的定义
如何引入Phoenix-spark插件
Spark SQL如何通过Phoenix读取HBase表中数据
Spark SQL如何把处理结果通过Phoenix存入HBase
如何通过SQL语句处理结构化数据
指标定义
一周内有两次以上零点到六点之间上网的人。
数据源
本实训提供了一个月的上网人员信息数据。
表名:dw.ZNB_04_121800005
表结构:
字段名 数据类型 字段说明
XM VARCHAR 姓名
XB VARCHAR 性别
CSRQ VARCHAR 出生日期
MZ VARCHAR 民族
LGMC VARCHAR 上网名称
LGDZQH VARCHAR 上网地址区划
SSQBM VARCHAR 住址省市区
XZ VARCHAR 详址
LGDZ VARCHAR 上网地址
ZJLX VARCHAR 证件类型
RZSJ VARCHAR 上网时间
TFSJ VARCHAR 结束时间
RZFH VARCHAR 上网房号
ZJHM VARCHAR 证件号码
XP VARCHAR 相片
LKBH VARCHAR 上网编号旅客编号
LGBM VARCHAR 上网编码
主键:RZSJ,ZJHM
其中一条数据为:
注意:只有姓名,出生日期,上网地址名称,上网时间,结束时间和证件号码列有数据,证件号是唯一的**
结果数据存储
将结果数据依托于Phoenix存入HBase中。
表名:tdsjsw
表结构:
字段名 数据类型 说明
zjhm VARCHAR 证件号,非空,主键
theweek Integer 第几周,非空,主键
输出结果列为zjhm(证件号码),theweek(某周)
将 Phoenix 表加载为 DataFrame
通过 DataSource API可以把 phoenix 表加载成 DataFrame,只需要给定一个表 名和 Hbase 的 Zookeeper 地址。
保存 DataFrame
Phoenix-Spark 同样可以把 DataFrame 保存到 HBase,只需要给定表名 和 Zookeeper 地址。
编程要求
请仔细阅读右侧代码,根据方法内的提示,在Begin - End区域内进行代码补充,完成指标的统计任务。
思路步骤:
通过Phoenix-Spark读取HBase表中数据
计算出触及指标的人员
通过Phoenix-Spark将结果数据存入HBase
原表和数据以及结果表均已创建完成
Zookeeper地址:127.0.0.1:2181
测试说明
补充完代码后,点击测评,平台会对你编写的代码进行测试,当你的结果与预期输出一致时,即为通过;
预期输出: