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 testwhere buy_nbr like 'O%' group by day_id,buy_nbr;

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);

create table profit(day_id varchar(200),sale_nbr VARCHAR(200),incnt double,inround double,outcnt double,outround double,li double);

insert overwrite table profit select * from daili where day_id between '2022-10-01' and '2022-10-15';
 
 

hive测试数据洗刷的更多相关文章

  1. 一脸懵逼学习Hive的使用以及常用语法(Hive语法即Hql语法)

    Hive官网(HQL)语法手册(英文版):https://cwiki.apache.org/confluence/display/Hive/LanguageManual Hive的数据存储 1.Hiv ...

  2. Hive和Sqoop测试数据

    测试数据以Oracle数据库自带scott用户emp和dept表为准: 一.MySQL数据库创建的emp和dept表语法及数据: drop table if exists dept;create ta ...

  3. hive学习-测试数据

    测试数据: ---------------------------------------------MySQL-------------------------------------------- ...

  4. hive分区表插入一条测试数据

    1.show create table tb_cdr;+-------------------------------------------------------+--+|             ...

  5. Hive索引功能测试

    作者:Syn良子 出处:http://www.cnblogs.com/cssdongl 转载请注明出处 从Hive的官方wiki来看,Hive0.7以后增加了一个对表建立index的功能,想试下性能是 ...

  6. hive 复杂类型

    hive提供一种复合类型的数据 struct:可以使用"."来存取数据 map:可以使用键值对来存取数据 array:array中存取的数据为相同类型,其中的数据可以通过下表获取数 ...

  7. hive学习笔记

    html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,bi ...

  8. Hive基本语法操练

    建表规则如下: CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name [(col_name data_type [COMMENT col_comment ...

  9. hive的使用02

    1.hive的交互方式 1.1 bin/hive 进入hive交互命令行环境 1.2 bin/hive -e 'select * from hive.student;' (可以通过 > 将结果写 ...

  10. Spark入门实战系列--5.Hive(上)--Hive介绍及部署

    [注]该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取 .Hive介绍 1.1 Hive介绍 月开源的一个数据仓库框架,提供了类似于SQL语法的HQ ...

随机推荐

  1. 基于WebSocket的modbus通信(一)- 客户端

    上一篇已经实现了ModbusTcp服务器和8个主要的功能码,只是还没有实现错误处理功能. 但是在测试客户端时却发现了上一篇的一个错误,那就是写数据成功,服务器不需要响应. 接下来要做的就是实现Modb ...

  2. UML建模工具Astah Pro 8破解教程2022最新最详细版

    (2022最新最详细版)UML建模工具Astah Pro 8破解教程 本文作者严正声明:拒绝盗版行为,打击盗版,痛恨吃白食的家伙,我一直都是坚定思想,有钱了一定要支持正版,所以此文档贡献,只为学习交流 ...

  3. vue3项目安装依赖报错 npm ERR! code ERESOLVE

    vue3项目安装依赖报错 npm ERR! code ERESOLVE npm ERR! ERESOLVE could not resolve npm ERR! npm ERR! While reso ...

  4. P6259

    problem 考虑使用 dfs 模拟. 由于一个程序可能在不进入无限循环的情况下运行很多步,这将会非常缓慢.因此,接下来要加速模拟,可以用记忆化搜索. 在网格中,机器人的可能状态(位置和朝向)只有 ...

  5. Spring Data JPA 学习笔记1 - JPA与Spring Data

    标记[跳过]的未来完善 1 理解JPA 1.1 什么是持久化? 当一个软件关闭的时候,软件内储存的状态数据还能在下次开启时被恢复,这就是持久化.对象持久化是指每个独立的对象的生命周期都能不依赖应用程序 ...

  6. gradle dependencies 查找jar导入OR解决jar冲突

    在gradle项目中,使用gradle dependencies先查询jar包的导入关系.然后找到导入的jar加入到项目中来.解决jar冲突等问题. 类似格式如下: annotationProcess ...

  7. 2019 南昌区域赛 CEGLM 题解 & lagrange 插值

    B. A Funny Bipartite Graph 状压 dp ,利用了原题中选完左边点集,那么右边在 左边编号最大的那个数 之前的所有点都要选的性质,可以优化到 \(O(n \cdot 2^n)\ ...

  8. EasyExcel 无法读取图片?用poi写了一个工具类

    在平时的开发中,经常要开发 Excel 的导入导出功能.一般使用 poi 或者 EasyExcel 开发,使用 poi 做 excel 比较复杂,大部分开发都会使用 EasyExcel 因为一行代码就 ...

  9. EMQX配置ssl/tls双向认证+SpringBoot项目整合MQTT_真实业务实践

    一.使用docker搭建Emqx 1.拉取emqx镜像 docker pull emqx/emqx:5.7 2.运行 docker run -d --name emqx emqx/emqx:5.7 3 ...

  10. Kafka Stream 以及其他流处理框架对比

    1. Kafka Stream Introduction 假设我们需要对kafka 消息做流数据分析,例如: 对部分消息做过滤 每分钟计算一次收到了多少消息 这种情况下,对于消息过滤以及定时统计,甚至 ...