首页 > 其他分享 >hive测试

hive测试

时间:2023-09-25 13:46:01浏览次数:26  
标签:cnt -- nbr sale hive day 测试 id

这次的hive测试的流程主要分为以下几个步骤

1、数据导入到hive数据库里

2、对数据清洗

3、数据分析处理

4、将处理后的数据导出到MySQL

5、 通过网页进行数据可视化

 

 

 

一.数据导入到hive数据库里

1)建立初始表

create table sales_sample_20214044 (

`day_id` string comment '时间',

`sale_nbr` string comment '卖出方',

`buy_nbr` string  comment '买入方',

`cnt` int comment '数量',

`round` int comment '金额')

row format delimited

fields terminated by ','

lines terminated by '\n';

  

 

   2)将数据导入到表中

load data local inpath '/root/hivedata/sales_sample_20170310.csv' into table sales_sample_20214044;

  

 
 

二、 对数据清洗

将id转换成真是日期
insert overwrite table sales_sample_20214044
select concat('2022-09-',day_id),sale_nbr,buy_nbr,cnt,round from sales_sample_20170310  ;
create table sales_sample111 as
    select  to_date(from_unixtime(UNIX_TIMESTAMP(day_id,'yyyy-MM-dd'))) as day_id,
           sale_nbr,
           buy_nbr,
           cnt,
           round
    from sales_sample_20214044;

  

三、数据分析处理

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

           
    create table sale_hangkong as

select

    day_id,sale_nbr,sum(cnt) as cnt,sum(round) as round from sales_sample111 where sale_nbr like 'C%' group by day_id, sale_nbr;

 

       2)统计每天各个代理商的销售数量和销售金额。

create table day_sale as

select

    day_id,

    sale_nbr,

    sum(cnt) as cnt_max,

    sum(round) as round_max

from sales_sample111

where sale_nbr like 'O%'

group by sale_nbr,day_id;

 

 

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

create table huoyuedumaichu as

select

    day_id,

    sale_nbr,

    count(*) as sale_number

from sales_sample111

where sale_nbr like 'O%'

group by sale_nbr,day_id;







create table huoyuedumairu as

select

    day_id,

    buy_nbr,

    count(*) as sale_number

from sales_sample111

where buy_nbr like 'O%'

group by buy_nbr,day_id;



create table huoyuedu as

select

    a.day_id as day_id,

    a.sale_nbr as sale_nbr,

    a.sale_number+h.sale_number as sale_number

from huoyuedumaichu a join huoyuedumairu h on a.day_id = h.day_id and a.sale_nbr=h.buy_nbr;

 

 

4)汇总统计10月1日到10月15日之间各个代理商的销售利润。

--计算代理商买入数量金额

drop table mairu;

create table mairu as

select

    day_id,

    buy_nbr,

    sum(cnt) as cnt,

    sum(round) as round

from sales_sample111

where buy_nbr like 'O%'

group by day_id, buy_nbr;



create table  maichu as

select

    day_id,

    sale_nbr,

    sum(cnt) as cnt,

    sum(round) as round

from sales_sample111

where sale_nbr like 'O%'

group by day_id, sale_nbr;





create table lirun as

select a.day_id as day_id,

       b.sale_nbr as nbr,

       a.cnt as cnt_buy,

       a.round as rount_buy,

       b.cnt as cnt_sale,

       b.round as round_sale,

       b.round-a.round as liren

from mairu a join maichu b on a.buy_nbr = b.sale_nbr and a.day_id = b.day_id

where a.day_id between '2022-10-01' and '2022-10-15';

 

 

 

四、将处理后的数据导出到MySQL

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

建表
create table sale_hangkong(
    day_id varchar(50) not null ,
    sale_nbr varchar(20),
    cnt int ,
    round int
);
导出
bin/sqoop export \
--connect jdbc:mysql://node1:3306/myhive\
--username root \          
--password 123456 \
--table sale_hangkong \   
--columns day_id,sale_nbr,cnt,round \  
--export-dir /user/hive/warehouse/myhive.db /sales_hangkong \
--input-fields-terminated-by "\001"

 

 

2)统计每天各个代理商的销售数量和销售金额。

create table day_sale(
    day_id varchar(20) not null ,
    sale_nbr varchar(20),
    cnt_sum int ,
    round_sum int
);
bin/sqoop export \
--connect jdbc:mysql://node1:3306/myhive \
--username root \
--password 123456 \
--table day_sale \
--columns day_id,sale_nbr,cnt_sum,round_sum \
--export-dir /user/hive/warehouse/myhive.db/day_sale \
--fields-terminated-by "\001" \
--input-null-non-string '\\N'

 

 

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

create table huoyuedu(
    day_id varchar(50) ,
    sale_nbr varchar(20),
    sale_number int
);
bin/sqoop export \
--connect jdbc:mysql://node1:3306/myhive \
--username root \
--password 123456 \
--table huoyuedu \
--columns day_id,sale_nbr,sale_number \
--export-dir /user/hive/warehouse/myhive.db/huoyuedu \
--fields-terminated-by "\001" \
--input-null-non-string '\\N'

 

 

4)汇总统计10月1日到10月15日之间各个代理商的销售利润。

--mysql
create table lirun(
    day_id varchar(50) ,
    nbr varchar(20),
     cnt_buy int,
     rount_buy int,
     cnt_sale int,
     round_sale int,
     lirun int
);
bin/sqoop export \
--connect jdbc:mysql://node1:3306/myhive \
--username root \
--password 123456 \
--table lirun \
--columns day_id,nbr,cnt_buy,rount_buy,cnt_sale,round_sale,lirun \
--export-dir /user/hive/warehouse/myhive.db/lirun \
--fields-terminated-by "\001" \
--input-null-non-string '\\N'

 

 

             

 

 

五、通过网页进行数据可视化

通过srpingboot+vue,整合echarts实现的表格可视化展示

 

标签:cnt,--,nbr,sale,hive,day,测试,id
From: https://www.cnblogs.com/qwb0614/p/17727749.html

相关文章

  • 单元测试框架-pytest
    1.简介Pytest是基于python语言的单元测试框架,也是一个命令行工具,具有以下特点:入门简单,易上手支持大量的第三方插件,如:失败重试,控制用例执行顺序等基于配置文件可以简单的集成CI(持续集成)工具中 2.快速入门安装pipinstallpytest  基本格式defadd(x,y):......
  • 关于测试类注解对应的依赖
    对于测试类使用的@SpringBootTest@RunWith(SpringRunner.class)publicclassDaoTest{@AutowiredprivateUserDaouserDao;@Testpublicvoidtest1(){Useruser=newUser();user.setId(1l);user.setItemId(1L);user.setOpen......
  • Rust+appium App自动化测试demo
    1.新建工程打开RustCover,新建工程如下:修改Cargo.toml文件如下:[package]name="test_demo"version="0.1.0"edition="2021"#Seemorekeysandtheirdefinitionsathttps://doc.rust-lang.org/cargo/reference/manifest.html[dependencies......
  • 第三方测评机构做软件测试的对企业有哪些收益?专业第三方测评机构收费?
    ​ 权威第三方软件测试报告第三方测评机构做软件测试的对企业有很多收益。主要有以下几点:节约人力成本:对于很多软件企业而言,由于软件的开发上线需要聘请专业的软件测试人员,但是一旦项目不饱和或者结束,这样会提高人力成本。选择第三方软件测评机构进行软件测评的话,就能完美......
  • 本地测试Spark的逻辑回归算法
    本地小数据量测试了一下Spark的LogisticRegressionWithSGD算法,效果不尽如人意。    数据样例如下,竖杠前的0,1代表两种类型,后面逗号隔开的是两个特征,两个特征只要有一个大于等于0.6就会被分为1这一类,否则就是0。1|0.3,0.60|0.2,0.11|0.5,0.61|0.8,0.30|0.4,0.30|0.3,0.......
  • hive极限测试2
        ......
  • 20230924天七集训测试总结
    这场考试败在策略,节奏被T1完全打乱了,导致T3甚至把题读错了(竟然有分)。按理来说是应该先把题看完的,但可能是前几次考试比较能平推的原因,这次没有先看所有题。暴力拿稳其实有很多分的。吸取一个教训吧。感觉这一整套题的思维难度都并没有那么深,但带有迷惑性且细节巨多。T1卡空......
  • IntelliJ IDEA中执行@Test单元测试时报错Class not found: "..."终极办法
    之前也出现过在编译时找不到测试类的问题,但之前的那篇博文,并不是终极办法IntelliJIDEA中执行@Test单元测试时报错Classnotfound:"..."Emptytestsuite 问题:出现类似问题,普遍时同然就报错了,原因是使用IDEA,从别人的Git上拉取代码后,别人把一些idea的配置文件也传上了,到时更新......
  • 安全测试简述
    一、安全测试介绍安全测试就是发现软件安全漏洞的过程,旨在保护软件系统的数据与功能。安全测试以破坏系统的安全策略为目标进行攻击,从而检查系统的漏洞或薄弱环节。对软件系统的要求:能够向合法用户提供服务,同时能够阻止非授权用户使用和破坏  二、安全测试常用方法静......
  • hadoop和hive的兼容问题
    本人之前搭建的集群是hadoop3.3.5+hive3.1.3版本,后来发现这两个版本不兼容,虽然官方文档里面说hive3.1.3版本兼容hadoop3.x.y版本,但是当我在使用hive执行插入语句时发现一直报同一个错误java.lang.ClassCastException:org.apache.hadoop.hdfs.protocol.proto.ClientNamenodePro......