考试程序语句总结

1、导csv文件到hive数据库

建表便于接收数据:

create table test1(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;

查看表的结构:

desc test1;

将数据插入到test1的表中:

load data local inpath '/data/文件名称.csv' into table test1;

查看表中数据:

select * from test1;

2、对某一列数据进行清洗

新建表test2,存储清洗后的数据:

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;

将清洗的数据从test1取出来,存储到test2中:

insert overwrite table test2 select date_add('2023-09-30',cast(day_id AS INT)) as day_id,sale_nbr,buy_nbr,cnt,round from test1;

查看test2表中的数据:

select * from test2;

3、数据分析处理

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

要求的输出字段
day_id,sale_nbr,,cnt,round
日期编号,卖出方代码,数量,金额

新建表test3_1--存储数据分析的结果1

create table test3_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 test3_1 select day_id,sale_nbr,SUM(cnt),SUM(round) from test2 where sale_nbr like 'C%' group by day_id,sale_nbr;

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

要求的输出字段
day_id,sale_nbr,,cnt,round
日期编号,卖出方代码,数量,金额

新建表test3_2存储数据分析的结果2

create table test3_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 test3_2 select day_id,sale_nbr,SUM(cnt),SUM(round) from test2 where sale_nbr like 'O%' group by day_id,sale_nbr;

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

要求的输出字段
day_id,sale_nbr, sale_number
日期编号,卖出方代码,交易次数(买入或者卖出均算交易次数)

新建表test3_3存储数据分析的结果3

create table test3_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 test3_3 select day_id,sale_nbr,COUNT(*) from test2 where sale_nbr like 'O%' or buy_nbr like 'O%' group by day_id,sale_bnr;

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

编号,卖出方代码,买入数量,买入金额,卖出数量,卖出金额,销售利润(卖出
金额-买入金额)

新建表test3_4存储数据分析的结果4:

//新建三个表test3_4_1、test3_4_2、test3_4

//第一个表存储售卖的金额和利润信息;

//第二个表存储买进的金额和利润信息;

//第三个表存储两表联动之后的信息;

进行第四项数据处理:

//略

5、设计分析代理商的市场地位根据市场交易次数、交易对象个数、销售机票数量、

销售利润等。(选做题)~~还

新建表test3_5c存储数据分析的结果5


进行第五项数据处理:


4、将hive数据导入mysql可视化数据库--sqoop export语法也是ok的哦~

先临时建立一个名为dboutput的临时表:

CREATE TEMPORARY FUNCTION dboutput AS 'org.apache.hadoop.hive.contrib.genericudf.example.GenericUDFDBOutput';

然后再将数据存储到mysql中:

 select dboutput('jdbc:mysql://node1:3306/transport?useSSL=false','root','hadoop','INSERT INTO test(day_id,sale_nbr,cnt,round) VALUES (?,?,?,?)',day_id,sale_nbr,cnt,round) from test3_1;
posted @ 2023-09-22 18:00  yesyes1  阅读(7)  评论(0编辑  收藏  举报