【头歌】Hive基本查询操作(二) 答案

本专栏已收集头歌大数据所有答案 以供参考

第1关:Hive排序

答案 复制点击评测

----------禁止修改----------
create database if not exists mydb;
use mydb;
create table if not exists total(
tradedate string,
tradetime string,
securityid string,
bidpx1 string,
bidsize1 int,
offerpx1 string,
bidsize2 int)
row format delimited fields terminated by ','
stored as textfile;
truncate table total;
load data local inpath '/root/files' into table total;
----------禁止修改----------

----------begin----------
select securityid,sum(bidsize1) s from total where tradedate ='20130722' group by securityid order by s desc limit 3;
----------end----------


第2关:Hive数据类型和类型转换

答案 复制点击评测

----------禁止修改----------
create database if not exists mydb;
use mydb;
create table if not exists total(
tradedate string,
tradetime string,
securityid string,
bidpx1 string,
bidsize1 int,
offerpx1 string,
bidsize2 int)
row format delimited fields terminated by ','
stored as textfile;
truncate table total;
load data local inpath '/root/files' into table total;
----------禁止修改----------

----------begin----------
select securityid,sum(bidsize1*cast(bidpx1 as float)) from total where tradedate='20130725' group by securityid;
----------end----------


第3关:Hive抽样查询

答案 复制点击评测

----------禁止修改----------
create database if not exists mydb;
use mydb;
create table if not exists total(
tradedate string,
tradetime string,
securityid string,
bidpx1 string,
bidsize1 int,
offerpx1 string,
bidsize2 int)
row format delimited fields terminated by ','
stored as textfile;
truncate table total;
load data local inpath '/root/files' into table total;
drop table if exists total_bucket;
----------禁止修改----------

----------begin----------
create table if not exists total_bucket(
tradedate string,
securityid string,
bidsize1 int,
bidsize2 int
)clustered by(securityid) into 6 buckets
row format delimited fields terminated by ','
stored as textfile;
set hive.enforce.bucketing = true;
insert overwrite table total_bucket
select tradedate,securityid,bidsize1,bidsize2
from total;

select tradedate,securityid,sum(bidsize1+bidsize2) 
from total_bucket tablesample(bucket 2 out of 2 on securityid) 
group by tradedate,securityid;
----------end----------

头哥Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供SQL查询功能。Hive定义了类SQL的查询语言HiveQL,它允许熟悉SQL的开发者使用HiveQL语句查询Hadoop中的数据。下面是Hive的一些基本查询操作: 1. 创建表:可以使用CREATE TABLE语句来创建一个新的表,定义表的结构,包括列名和数据类型等。 ```sql CREATE TABLE IF NOT EXISTS employees ( emp_id INT, emp_name STRING, emp_salary DOUBLE, emp_dept STRING ) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS TEXTFILE; ``` 2. 插入数据:使用INSERT语句可以向表中插入数据。 ```sql INSERT OVERWRITE TABLE employees SELECT * FROM employees_backup; ``` 3. 查询数据:使用SELECT语句来查询表中的数据,类似于SQL。 ```sql SELECT emp_id, emp_name, emp_salary FROM employees WHERE emp_dept = 'Sales'; ``` 4. 删除表:使用DROP TABLE语句可以删除一个已经存在的表。 ```sql DROP TABLE IF EXISTS employees; ``` 5. 加载数据:使用LOAD DATA语句将HDFS上的数据加载到Hive表中。 ```sql LOAD DATA INPATH '/path/to/input/data/' INTO TABLE employees; ``` 6. 更新数据:Hive不支持传统的UPDATE语句,通常需要使用其他方法来更新表中的数据,比如通过创建新表或者使用MapReduce作业。 7. 删除数据:同样,Hive不支持传统的DELETE语句,通常使用分区和数据删除技术来实现数据的删除。 ```sql ALTER TABLE employees DROP PARTITION (emp_dept = 'Sales'); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值