hive测试数据洗刷
hive测试——HIVE数据分析
测试使用虚拟机中的hive
环境:虚拟机+jdk+hadoop+hive+mysql
题目:
1、数据导入:
要求将样表文件中的(sales_sample_20170310)数据导入HIVE数据仓库中。
2、数据清洗:
要求将day_id一列中的数值清洗为真实的日期格式,可用字符串表示。
数据1对应日期2022-10-01,依次类推,15对应日期2022-10-15
3、数据分析处理:
(1)统计每天各个机场的销售数量和销售金额。
要求的输出字段
day_id,sale_nbr,,cnt,round
日期编号,卖出方代码,数量,金额
(2)统计每天各个代理商的销售数量和销售金额。
要求的输出字段
day_id,sale_nbr,,cnt,round
日期编号,卖出方代码,数量,金额
(3)统计每天各个代理商的销售活跃度。
要求的输出字段
day_id,sale_nbr, sale_number
日期编号,卖出方代码,交易次数(买入或者卖出均算交易次数)
(4)汇总统计10月1日到10月15日之间各个代理商的销售利润。
编号,卖出方代码,买入数量,买入金额,卖出数量,卖出金额,销售利润(卖出金额-买入金额)
4、处理结果入库:
将上述统计分析的结果数据保存到mySQL数据库中。
5、数据可视化展示:
利用Echarts将上述统计结果以图形化展示的方式展现出来:饼图、柱状图、地图、折线图等。
1、数据导入

#建表
Create table test2(day_id varchar(30), sale_nbr varchar(30), buy_nbr varchar(30), cnt varchar(30), round varchar(30)) row format serde 'org.apache.hadoop.hive.serde2.OpenCSVSerde' WITH SERDEPROPERTIES ( "separatorChar"="," ) STORED AS TEXTFILE;
#数据导入
load data local inpath '/export/software/sales.csv' into table test2;

2、数据清洗

#重新建一个表
Create table test3(day_id varchar(30), sale_nbr varchar(30), buy_nbr varchar(30), cnt varchar(30), round varchar(30)) row format serde 'org.apache.hadoop.hive.serde2.OpenCSVSerde' WITH SERDEPROPERTIES ( "separatorChar"="," ) STORED AS TEXTFILE;
#导入清洗后的数据
insert overwrite table test3 select date_add('2022-10-00',cast(day_id AS INT)) as day_id,sale_nbr,buy_nbr,cnt,round from test2;

3-1、统计每天各个机场的销售数量和销售金额

#建表
Create table text3_1(day_id varchar(30), sale_nbr varchar(30), cnt varchar(30), round varchar(30)) row format serde 'org.apache.hadoop.hive.serde2.OpenCSVSerde' WITH SERDEPROPERTIES ( "separatorChar"="," ) STORED AS TEXTFILE;
#数据导入
insert overwrite table text3_1
SELECT
day_id,
sale_nbr,
SUM(cnt),
SUM(round)
FROM
test3
WHERE sale_nbr LIKE 'C%'
GROUP BY day_id,sale_nbr;

3-2、统计每天各个代理商的销售数量和销售金额

#建表
Create table text3_2(day_id varchar(30), sale_nbr varchar(30), cnt varchar(30), round varchar(30)) row format serde 'org.apache.hadoop.hive.serde2.OpenCSVSerde' WITH SERDEPROPERTIES ( "separatorChar"="," ) STORED AS TEXTFILE;
#数据导入
insert overwrite table text3_2
SELECT
day_id,
sale_nbr,
SUM(cnt),
SUM(round)
FROM
test3
WHERE sale_nbr LIKE "O%"
GROUP BY day_id,sale_nbr;

3-3、统计每天各个代理商的销售活跃度

#建表
Create table text3_3(day_id varchar(30), sale_nbr varchar(30), sale_number varchar(30)) row format serde 'org.apache.hadoop.hive.serde2.OpenCSVSerde' WITH SERDEPROPERTIES ( "separatorChar"="," ) STORED AS TEXTFILE;
#导入数据
insert overwrite table text3_3
SELECT
day_id,
sale_nbr,
COUNT(sale_nbr)
FROM
test3
WHERE sale_nbr LIKE "O%"
GROUP BY day_id,sale_nbr;

3-4、汇总统计10月1日到10月15日之间各个代理商的销售利润(先将数据导入,然后重新建表,取出部分数据)

create table daiout as select day_id as day_id,sale_nbr as sale_nbr,sum(cnt)as cnt,sum(round)as round from test3 where sale_nbr like 'O%' group by day_id,sale_nbr;create
table
daiin
as
select
day_id
as
day_id,buy_nbr
as
buy_nbr,
sum
(cnt)
as
cnt,
sum
(round)
as
round
from
test3
where
buy_nbr
like
'O%'
group
by
day_id,buy_nbr;
create table profit(day_id varchar(200),sale_nbr VARCHAR(200),incnt double,inround double,outcnt double,outround double,li double);create
table
daili
as
select
daiin.day_id
as
day_id,daiout.sale_nbr
as
sale_nbr,daiin.cnt
as
incnt,daiin.round
as
inround,daiout.cnt
as
outcnt,daiout.round
as
outround,daiout.round-daiin.round
as
li
from
daiin
join
daiout
on
(daiin.buy_nbr=daiout.sale_nbr);
insert overwrite table profit select * from daili where day_id between '2022-10-01' and '2022-10-15';

hive测试数据洗刷的更多相关文章
- 一脸懵逼学习Hive的使用以及常用语法(Hive语法即Hql语法)
Hive官网(HQL)语法手册(英文版):https://cwiki.apache.org/confluence/display/Hive/LanguageManual Hive的数据存储 1.Hiv ...
- Hive和Sqoop测试数据
测试数据以Oracle数据库自带scott用户emp和dept表为准: 一.MySQL数据库创建的emp和dept表语法及数据: drop table if exists dept;create ta ...
- hive学习-测试数据
测试数据: ---------------------------------------------MySQL-------------------------------------------- ...
- hive分区表插入一条测试数据
1.show create table tb_cdr;+-------------------------------------------------------+--+| ...
- Hive索引功能测试
作者:Syn良子 出处:http://www.cnblogs.com/cssdongl 转载请注明出处 从Hive的官方wiki来看,Hive0.7以后增加了一个对表建立index的功能,想试下性能是 ...
- hive 复杂类型
hive提供一种复合类型的数据 struct:可以使用"."来存取数据 map:可以使用键值对来存取数据 array:array中存取的数据为相同类型,其中的数据可以通过下表获取数 ...
- hive学习笔记
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,bi ...
- Hive基本语法操练
建表规则如下: CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name [(col_name data_type [COMMENT col_comment ...
- hive的使用02
1.hive的交互方式 1.1 bin/hive 进入hive交互命令行环境 1.2 bin/hive -e 'select * from hive.student;' (可以通过 > 将结果写 ...
- Spark入门实战系列--5.Hive(上)--Hive介绍及部署
[注]该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取 .Hive介绍 1.1 Hive介绍 月开源的一个数据仓库框架,提供了类似于SQL语法的HQ ...
随机推荐
- rofi编译支持中文输入版本
准备工作 git clone https://github.com/davatorium/rofi.git 根据网上的信息,rofi 中文输入主要是依赖 xcb-imdkit 这个库 当然我们是使用源 ...
- 小米路由器4c刷入openwrt并成功进行锐捷认证
小米路由器4C 刷入openwrt 并成功进行锐捷认证 前言: 在大学中,宿舍有个路由器当然是刚需,然而,我们学校的校园网需要进行锐捷认证,常规的路由器还用不了,需要自己刷路由器或是从奸商处购买.初入 ...
- Linu部署服务启停脚本
Linux项目部署启停 WEB应用(WAR包)部署 实际开发中,难免遇见新业务项目构建.项目重构(重新优化整个项目的架构,相当于重写),也可能是项目拆分多个模块,也可能部分拆分,但项目的模块化分离,就 ...
- ETL工具-nifi干货系列 第十六讲 nifi Process Group实战教程,一文轻松搞定
1.目前nifi系列已经更新了10多篇教程了,跟着教程走的同学应该已经对nifi有了初步的解,但是我相信同学们应该有一个疑问:nifi设计好的数据流列表在哪里?如何同时运行多个数据流?如启停单个数据流 ...
- Linux扩展篇-shell编程(五)-流程控制(一)-if语句
基本语法: (1)单分支 if [ condition ];then statement(s) fi 或 if [ condition ] then statement(s) fi (2)多分支 if ...
- 将手机声音通过蓝牙输入到WIN10电脑-安卓手机投屏直播无声音
安卓手机投屏无声音,斗鱼,虎牙,直播无声音.可以用本方案,前提是电脑要有蓝牙功能,没有蓝牙,可以购买一个USB蓝牙适配器(不建义买CSR芯片的,CSR驱动会导致office 和远程桌面有问题). 操作 ...
- Cursor是什么?基于ChatGPT代码编辑器的cursor如何使用?VS Code如何迁移到Cursor的步骤
Cursor是什么 Cursor 是一个基于 Visual Studio Code(VS Code)技术构建的高级代码编辑器,专为提高编程效率并更深度地整合 AI 功能而设计.它不仅继承了 VS Co ...
- Javascript高级程序设计第四章 | ch4 | 阅读笔记
变量.作用域与内存 原始值与引用值 什么是字面量形式? let obj = { key1: val1, key2: val2, foo () { } } 这就是字面量形式,手动声明一个对象的属性和方法 ...
- Sqlite windows11 安装与使用
首先进入Sqlite官方网址: https://www.sqlite.org/download.html 然后下载下面框起来的两个压缩文件 下载完成后解压 接下来去配置环境变量,右键此电脑->属 ...
- 一份快速入门的 Makefile 教程
目录 一份快速入门的 Makefile 教程 关于 Makefile,你应该知道的一些事情 什么是 Makefile? Makefile 能做什么? Makefile 怎么写? Makefile 与 ...