给定的数据为业务情景数据,所有数据均已进⾏了采样和脱敏处理,字段取值与分布均与真实业务数据不同。提供了时间为 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的结合应用案例详解...相关推荐

  1. csv导入mysql_京东金融数据分析:MySQL+HIVE的结合应用案例详解【附全代码】

    - 点击上方"中国统计网"订阅我吧!-  文末领取[案例数据集+全部代码] 给定的数据为业务情景数据,所有数据均已进⾏了采样和脱敏处理,字段取值与分布均与真实业务数据不同.提供了时 ...

  2. wow mysql dbc_DBC中悲观锁介绍附案例详解

    DBC中悲观锁介绍附案例详解 了解下DBC中悲观锁: 代码如下: BDUtils 工具类: package JDBC; import java.sql.*; public class BDUtils ...

  3. mysql执行计划中性能最差的是_面试中:mysql性能调优-执行计划explain

    mysql的sql调优大家都不陌生,可是调优前都会先看下执行计划,这个是必须的. 插播图片: explain 这个是关键字执行如下: explain select * from user 结果如下: ...

  4. mysql 一对多 关联一条最新的数据_不得不会的mysql锁

    6. 多表之间的关系 如图,实际业务数据库中的表之间都是有关系的,我们接下来主要要学习的就是如何分析表关系及建立表关系. 分类表 create table category( cid varchar( ...

  5. 【工厂扫码打印扫码装箱错误追溯系统】完整案例详解(PythonPyQt 源码Mysql数据库)

    一. 市场需求 目前很多工厂产品装箱过程中仍存在一些问题: 商品打包发货出错,少发,错发,漏发 --- 追溯问题到底出在哪个环节? 手工制作装箱单,发货单,打印商品条码标签,外箱标签 --- 花费太多 ...

  6. Docker高级篇之Mysql主从复制、Redis集群扩容缩容配置案例详解

    Docker之Mysql主从复制.Redis集群扩容缩容配置案例 1. 安装mysql主从复制 1.1 新建主服务器容器实例3307 1.2 进入/mydata/mysql-master/conf目录 ...

  7. mysql删除重复数据只保留一条_mysql查找删除重复数据并只保留一条实例详解

    有这样一张表,表数据及结果如下: school_id school_name total_student test_takers 1239 Abraham Lincoln High School 55 ...

  8. 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 ...

  9. 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 ...

最新文章

  1. MySQL数据库中默认事务隔离级别是?
  2. 项目配置laungchImage
  3. wxWidgets:wxRichToolTip类用法
  4. C#的二进制序列化组件MessagePack介绍
  5. 达文西画中的数学密码
  6. 使用JavaScript修改浏览器URL地址栏的实现代码
  7. 天津大学推出大型无人机航拍车辆数据集DroneVehicle
  8. Mr.J-- jQuery学习笔记(十三)--选项Tab卡
  9. C语言中字符串的处理方式(一)
  10. oracle 中的参数 optimizer_mod的各个参数的意义
  11. primitive types
  12. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_4-1.单机和分布式应用的登录检验讲解...
  13. java gbk编码_java中如何得到输入的汉字的GBK编码
  14. WIN10命令提示符/黑窗口/cmd打不开怎么办
  15. 【SNE-RoadSeg 解读】结合表面法向量的路面分割网络(ECCV2020)
  16. android 监测usb有线网卡的网线连接状态 详细一点的输出信息解析
  17. K8S CRD 资源对象删除不掉
  18. 揭秘潜伏在QQ群里面的低调高收入者
  19. Go语言编程设计学习Day1:helloworld 变量 常量
  20. 红米k30至尊纪念版和红米k30i哪个好

热门文章

  1. js系列教程9-表单元素全解
  2. WPF内嵌WCF服务对外提供接口
  3. linux 用vi命令的使用以及vi编辑后的后续保存退出等相关命令的使用
  4. win10 安装msys2 和 ruby
  5. 洛谷 P1086 花生采摘
  6. 使用实例 ---- 使用NUnit在.Net编程中进行单元测试
  7. Mysql中autocommit的用法
  8. php输出带尖括号的内容
  9. UIProgressView的详细使用
  10. CF1110G Tree-Tac-Toe 博弈论、构造