实验7 Hive应用

  • 实验目的

理解Hive的设计和查询方法;掌握Hive安装配置和管理方法;掌握Hive Java API编程环境配置及开发方法。

  • 实验内容

Hive安装

Hive命令行应用

  • 实验步骤
  1. 安装配置hive
  2. 内部表应用
  3. 外部表应用
  • 实验结果

将hive上传到了根目录下

创建hive的安装目录

将hive解压到刚刚创建的目录下

Vi /etc/profile,配置环境变量,添加hive的环境变量

source /etc/profile,让环境变量生效

进入hive安装目录下的conf目录

   cd /home/hive/apache-hive-3.1.2/conf

   从模板复制一个配置文件并打开

   cp hive-env.sh.template hive-env.sh

   vi hive-env.sh

   在文件末尾增加如下两行

启动Hadoop HDFS和YARN

初次执行时,先初始化derby元数据库

   cd进入hive安装目录:

   schematool -initSchema -dbType derby

Derby会在第一次启动初始化命令时,在当前所在目录创建元数据库文件(metastore_db)

输入hive -version,查看hive版本,使用的版本为3.1.2

进入hive安装目录,执行命令:hive,出现hive>代表启动成功

退出hive,hive的命令都需要以‘;’结尾

测试hive功能,创建表

显示所有表 命令:show tables;

显示指定表的结构 命令:desc student;

向student表插入多条数据 命令:insert into 表名 values 每个插入数据用()包括,以’,’分割

查询数据

1. 内部表应用

(1) 创建内部表Student,要求的字段和类型: id int, name string, sex string, age int

insert语句录入以下数据:

id name sex age

1 Tom M 18

2 Trill M 19

3 Bell M 20

4 Lisa F 19

5 Willy F 18

查询表内所有数据,插入成功

    1. 查询所有男生

    1. 查询大于18岁的学生,并按年龄升序排列 order by age ASC代表升序排列

2. 外部表应用

(1) 将本实验数据上传至HDFS,数据为stock-daily30d2.txt,此数据修改了实验4的数据中的日期格式以支持Hive中的Date数据类型。

(2) 创建外部表Stock,具体的字段名称和类型为:code string, isst boolean, open float, close float, high float, low float, volume float, money float, factor float, high_limit float, low_limit float, avg float, paused boolean, trade_date date;

CREATE EXTERNAL TABLE IF NOT EXISTS Stock (code STRING, isst BOOLEAN, open FLOAT, close FLOAT, high FLOAT, low FLOAT, volume FLOAT, money FLOAT, factor FLOAT, high_limit FLOAT, low_limit FLOAT, avg FLOAT, paused BOOLEAN, trade_date DATE ) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' STORED AS TEXTFILE LOCATION '/usr/data';

数据放在/usr/data下,根据文件所在目录查找,只需要输入目录位置,一行的数据以\t分割

    1. 查询上证所的股票数量,代码以.SH结尾的股票  like可以进行模糊匹配,’%’表示有多个字符

部分结果

查询每日市场总交易量(万元)

结果须包含日期和对应的中交易量数据

结果按时间做降序排列

市场总交易量为当天所有股票交易量(万元)之和  order by trade_date DESC 代表查询结果以降序排列

查询结果如下

搜索所有交易日,并对交易日编号(保存中间数据到tradedate表)

表结构如下

利用连接查询,搜索提取计算所需股票代码和收盘价,并将交易日标记上对应编号(保存中间数据到closewithid表),join on 把Stock表和tradedate表以trade_date的条件进行连接

利用自连接,让股票当日收益与该股票前第五日收益连接在同一行中,并计算五日收益率,此计算对每个股票和交易日都生效(保存中间数据到rollreturn表)自连接:两个相同的表进行连接

表结构

查询某只股票的五日滚动收益率

查询结果

  1. 计算所有股票平均每日收益率

部分结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_73931224

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值