mysql 字段有正负值的时候 sum无效_京东金融数据分析:MySQL+HIVE的结合应用案例详解...
给定的数据为业务情景数据,所有数据均已进⾏了采样和脱敏处理,字段取值与分布均与真实业务数据不同。提供了时间为 2016-08-03 到 2016-11-30 期间,用户在移动端的行为数据、购物记录和历史借贷信息,及 11 月的总借款金额。【数据集请在文末添加顾问老师领取】
文件包括user.csv,order.cav,click.csv,loan.csv,loan_sum.csv
前 言
一般的大数据项目一般都分为两种,一种是批处理一种是流式处理,此次练习批处理使用hive和presto处理,流式处理使用SparkStreaming+kafka来处理
任务 1
一般情况下我们的user的数据都是存在自己的关系型数据库中,所以这里将 t_user 用户信息到 MySQL 中,我们在从MySQL中将其导入到hdfs上,其他三个文件及,t_click,t_loan 和 t_loan_sum 直接导入到 HDFS 中。
mysql自带csv导入功能所以先创建数据库和user表
导入数据
任务 2
利用 Sqoop 将 MySQL 中的 t_user 表导入到 HDFS 中,显示有哪些数据库
显示有哪些表
使用sqoop把MySQL中表t_user数据导入到hdfs的/data/sq目录下
sqoop import --connect jdbc:mysql://master:3306/jd --username root --password '' --table t_user --target-dir /data/sq
出错了
18/08/21 13:44:26 ERROR tool.ImportTool: Import failed: No primary key could be found for table t_user. Please specify one with --split-by or perform a sequential import with '-m 1'.
说是这个表中没有主键。我们可以建表的时候给它设置上主键,也可以使用下面–split-by来指定使用哪个字段分割
sqoop import --connect jdbc:mysql://master:3306/jd --username root --password '' --table t_user --target-dir /data/sq --split-by 'uid'
又出错了
错误原因:因为我这里的hadoop集群使用了3台虚拟机,slave和slave2没有使用root用户访问MySQL的权限
进入mysql的控制台:
use mysql
select host,user,password from user;
可以看到现在只有master有权限,给slave和slave2也设置权限
这才执行OK。查看导入后的hdfs上的目录hdfs dfs -ls /data/sq
查看每一部分的数据hdfs dfs -cat /data/sq
OK导入完成 剩下的几个CSV文件直接功过hadoop的put命令上传到hdfs上对应的目录即可。
任务 3
利用 Presto 分析产生以下结果,并通过 web 方式可视化:
- 各年龄段消费者每日购买商品总价值
- 男女消费者每日借贷金额
我们在使用presto做数据分析的时候,一般是跟hive联合起来使用,先从hive中创建相应的数据表,然后使用presto分析hive中的表。
启动hive
//启动hive的metastorenohup hive --service metastore >> /home/chs/apache-hive-2.1.1-bin/metastore.log 2>&1 &//启动hive servernohup hive --service hiveserver2 >> /home/chs/apache-hive-2.1.1-bin/hiveserver.log 2>&1 &//启动客户端 beeline 并连接beelinebeeline> !connect jdbc:hive2://master:10000/default hadoop hadoop
创建用户表
导入hdfs上的数据
创建用户订单表
导入hdfs上的数据
创建用户点击表
导入hdfs上的数据
创建借款信息表t_loan
导入hdfs上的数据
创建月借款总额表t_loan_sum
导入hdfs上的数据
启动Presto
在安装目录下运行 bin/launcher start
运行客户端 bin/presto –server master:8080 –catalog hive –schema default
连接hive !connect jdbc:hive2://master:10000/default hadoop hadoop
开始查询分析
第一题
select t_user.age,t_order.buy_time,sum(t_order.price*t_order.qty-t_order.discount) as sum from t_user join t_order on t_user.uid=t_order.uid group by t_user.age,t_order.buy_time;
部分结果
第二题
select t_user.sex,SUBSTRING(t_loan.loan_time,0,10) as time,sum(t_loan.loan_amount) as sum from t_user join t_loan on t_user.uid=t_loan.uid group by t_user.sex ,SUBSTRING(t_loan.loan_time,0,10);
部分结果
任务 4
利用 Spark RDD 或 Spark DataFrame 分析产生以下结果:
- 借款金额超过 2000(因为数据做过处理,这里就分析大于5的) 且购买商品总价值超过借款总金额的用户 ID
- 从不买打折产品且不借款的用户 ID
代码过长仅展示部分,完整代码请添加顾问领取
任务 5
利用 spark streaming 实时分析每个页面点击次数和不同年龄段消费总金额。
步骤:编写 Kafka produer 程序读取hdfs上的文件每隔一段时间产生数据,然后使用spark streaming读取kafka中的数据进行分析,分析结果写入到redis中。
(1)将 t_click 数据依次写入 kafka 中的 t_click 主题中,每条数据写入间隔为10 毫秒,其中 uid 为 key,click_time+” ,” +pid 为 value
代码过长仅展示部分,完整代码请添加顾问领取
运行结果
(2)将 t_order 数据依次写入 kafka 中的 t_order 主题中,每条数据写入间隔为10 毫秒,其中 uid 为 key,uid+” ,” +price + “,” + discount 为value
代码过长仅展示部分,完整代码请添加顾问领取
运行结果
(3)编写 spark streaming 程序,依次读取 kafka 中 t_click 主题数据,并统计:每个页面累计点击次数,并存入 redis,其中 key 为” click+pid” ,value 为累计的次数
代码过长仅展示部分,完整代码请添加顾问领取
运行结果redis
(4)编写 spark streaming 程序,依次读取 kafka 中 t_order 主题数据,并统计:不同年龄段消费总金额,并存入 redis,其中 key 为” age” ,value 为累计的消费金额
代码过长仅展示部分,完整代码请添加顾问领取
运行结果redis
荐:
【中国风动漫】除了《哪吒》,这些良心国产动画也应该被更多人知道!
声明
来源:CSDN,人工智能产业链联盟推荐阅读,不代表人工智能产业链联盟立场,转载请注明,如涉及作品版权问题,请联系我们删除或做相关处理!
mysql 字段有正负值的时候 sum无效_京东金融数据分析:MySQL+HIVE的结合应用案例详解...相关推荐
- csv导入mysql_京东金融数据分析:MySQL+HIVE的结合应用案例详解【附全代码】
- 点击上方"中国统计网"订阅我吧!- 文末领取[案例数据集+全部代码] 给定的数据为业务情景数据,所有数据均已进⾏了采样和脱敏处理,字段取值与分布均与真实业务数据不同.提供了时 ...
- wow mysql dbc_DBC中悲观锁介绍附案例详解
DBC中悲观锁介绍附案例详解 了解下DBC中悲观锁: 代码如下: BDUtils 工具类: package JDBC; import java.sql.*; public class BDUtils ...
- mysql执行计划中性能最差的是_面试中:mysql性能调优-执行计划explain
mysql的sql调优大家都不陌生,可是调优前都会先看下执行计划,这个是必须的. 插播图片: explain 这个是关键字执行如下: explain select * from user 结果如下: ...
- mysql 一对多 关联一条最新的数据_不得不会的mysql锁
6. 多表之间的关系 如图,实际业务数据库中的表之间都是有关系的,我们接下来主要要学习的就是如何分析表关系及建立表关系. 分类表 create table category( cid varchar( ...
- 【工厂扫码打印扫码装箱错误追溯系统】完整案例详解(PythonPyQt 源码Mysql数据库)
一. 市场需求 目前很多工厂产品装箱过程中仍存在一些问题: 商品打包发货出错,少发,错发,漏发 --- 追溯问题到底出在哪个环节? 手工制作装箱单,发货单,打印商品条码标签,外箱标签 --- 花费太多 ...
- Docker高级篇之Mysql主从复制、Redis集群扩容缩容配置案例详解
Docker之Mysql主从复制.Redis集群扩容缩容配置案例 1. 安装mysql主从复制 1.1 新建主服务器容器实例3307 1.2 进入/mydata/mysql-master/conf目录 ...
- mysql删除重复数据只保留一条_mysql查找删除重复数据并只保留一条实例详解
有这样一张表,表数据及结果如下: school_id school_name total_student test_takers 1239 Abraham Lincoln High School 55 ...
- mysql data文件夹恢复_【专注】Zabbix源码安装教程—步骤详解(2)安装并配置mysql...
四.安装并配置mysql(1) 解压mysql-5.7.26.tar.gz与boost_1_59_0.tar.gz #tar -xvf mysql-5.7.26.tar.gz #tar -xvf bo ...
- php+mysql案例含源码_【专注】Zabbix源码安装教程—步骤详解(1)安装前准备
一.实验环境准备 Rhel 7.6 x86_64(server) 192.168.163.72 Rhel 6.5 x86_64(agent) 192.168.163.61 均已配置操作安装光盘为YUM ...
最新文章
- MySQL数据库中默认事务隔离级别是?
- 项目配置laungchImage
- wxWidgets:wxRichToolTip类用法
- C#的二进制序列化组件MessagePack介绍
- 达文西画中的数学密码
- 使用JavaScript修改浏览器URL地址栏的实现代码
- 天津大学推出大型无人机航拍车辆数据集DroneVehicle
- Mr.J-- jQuery学习笔记(十三)--选项Tab卡
- C语言中字符串的处理方式(一)
- oracle 中的参数 optimizer_mod的各个参数的意义
- primitive types
- 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_4-1.单机和分布式应用的登录检验讲解...
- java gbk编码_java中如何得到输入的汉字的GBK编码
- WIN10命令提示符/黑窗口/cmd打不开怎么办
- 【SNE-RoadSeg 解读】结合表面法向量的路面分割网络(ECCV2020)
- android 监测usb有线网卡的网线连接状态 详细一点的输出信息解析
- K8S CRD 资源对象删除不掉
- 揭秘潜伏在QQ群里面的低调高收入者
- Go语言编程设计学习Day1:helloworld 变量 常量
- 红米k30至尊纪念版和红米k30i哪个好