- 点击上方“中国统计网”订阅我吧!-

 文末领取【案例数据集+全部代码】

给定的数据为业务情景数据,所有数据均已进⾏了采样和脱敏处理,字段取值与分布均与真实业务数据不同。提供了时间为 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

End.

作者:chsmy2018

来源:CSDN

http://t.cn/A62W6INc

本文为转载分享,如侵权请联系后台删除

扫码添加职场老师微信领取【案例数据集+全部代码

还可以获得职场老师生涯规划建议哦!

爱数据 · 6月公开课

直播主题:金融从业者:如何转行数据分析

课程亮点:

  • 了解金融领域公司的行业最新动态

  • 从金融转行其他行业的解决方案

  • 风控类岗位转行的解决方案

  • 银行柜员/理财经理等转行的解决方案

直播时间:6月4日 明晚20:30

点击“阅读原文”0元参与课程直播

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

  1. mysql 字段有正负值的时候 sum无效_京东金融数据分析:MySQL+HIVE的结合应用案例详解...

    给定的数据为业务情景数据,所有数据均已进⾏了采样和脱敏处理,字段取值与分布均与真实业务数据不同.提供了时间为 2016-08-03 到 2016-11-30 期间,用户在移动端的行为数据.购物记录和历 ...

  2. 【数据分析与挖掘实战】金融风控之贷款违约预测详解2(有代码和数据集)

    本文接着上一篇博客,如果您未阅读上篇博客,请点击[数据分析与挖掘实战]金融风控之贷款违约预测详解1(有代码和数据集) 七.建模和调参 7.1模型相关原理介绍 由于相关算法原理篇幅较长,本文推荐了一些博 ...

  3. 【原创干货】6000字、22个案例详解Pandas数据分析/预处理时的实用技巧,超简单...

    上两篇原创的文章,小编主要是讲了数据可视化方面的内容,但是好像看得人不是很多的样子(搞得小编心里拔凉拔凉的....) [硬核干货]4500字.10个案例分享几个Python可视化小技巧,助你绘制高质量 ...

  4. mysql切换用户sql语句,MySQL用户管理及SQL语句详解

    [(none)]>select user,host frommysql.user; #查询用户和主机+---------------+-----------+ | user | host | + ...

  5. mysql57数据库命令_MySQL 5.7 mysql command line client 使用命令详解

    MySQL 5.7 MySQL command line client 使用命令 1.输入密码:****** 2.ues mysql;使用Mysql 3.show databases;显示数据库 4. ...

  6. mysql dba系统学习-数据库事务详解

    mysql dba系统学习-数据库事务详解 上个星期去面试数据库管理员的工作,笔试通过之后就是直接的面试,他问了我一个问题,叫我介绍哈数据库的事务的看法和理解,但是不知所错的没有章法的乱答一气,唉唉, ...

  7. mysql完全备份 二进制日志,MySQL二进制日志备份和恢复详解

    原文链接:http://www.showerlee.com/archives/681 ****经实践,该教程ok,特在此分享**** 基本概念 定义: 二进制日志包含了所有更新了数据或者已经潜在更新了 ...

  8. mysql 规则引擎_Drools规则引擎详解-常用的drl实例

    package droolsDemo //说明:每个 drl 都必须声明一个包名,这个包名与 Java 里面的不同,它不需要与文件夹的层次结构一致, //主要用于可以根据kmodule.xml中不同的 ...

  9. mysql command line client 使用_MySQL 5.7 mysql command line client 使用命令详解

    MySQL 5.7 MySQL command line client 使用命令 1.输入密码:****** 2.ues mysql;使用Mysql 3.show databases;显示数据库 4. ...

最新文章

  1. <论文翻译>RepVGG: Making VGG-style ConvNets Great Again
  2. oracle菜鸟学习之 分析函数-排序
  3. JAVA——JScrollbar 滚动条自动滚动到底端解决方案
  4. JSON数据从OSS迁移到MaxCompute最佳实践 1
  5. Typora 常用技巧
  6. 今天的这可是有原因的飞鸽传书
  7. wchar_t与char转换(转载)
  8. 诺基亚9.3再曝光:后置1亿像素圆形五摄 价格或超6000元
  9. python实现简单的http服务器_python实现简单http服务器功能
  10. 2017-2018-1 JAVA实验站 第四、五周作业
  11. Membership学习(一) Membership介绍[xgluxv]
  12. 红外遥控模块的使用方法,以及stm32代码
  13. cdr添加节点快捷键_CDR快捷键大全
  14. 网页截图服务器,命令行下的2款网页截图工具推荐
  15. 傅立叶变换、Gabor变换与小波变换
  16. arduino教程-13. 蓝牙
  17. 微信公众号数据2019_2019年2月全国Top100购物中心微信公众号榜单
  18. 求二维形状渐变的算法
  19. JUC--005--locks1
  20. Cannot run program python问题解决

热门文章

  1. 什么?你项目还在用Date表示时间?!
  2. Java 面试 80% 的人都会踩这些坑,你知道几种?
  3. 如何高效地进行敏捷开发管理
  4. JimuReport积木报表—分版设计解决什么问题?
  5. JEECG_3.7开发环境搭建与代码生成器入门级教程-张代浩-专题视频课程
  6. JEECG Online Coding 开发流程
  7. R-CNN 最直观的理解
  8. 算法3-------最长子序列和
  9. 干货!9种高性能可用高并发的技术架构
  10. ASP.NET Aries 入门开发教程2:配置出一个简单的列表页面