HiveQL:查询

本文介绍了HiveQL的基本查询操作,包括select、where、group by...having语句、join、排序、抽样查询、数据库抽样以及分桶表的输入裁剪。重点讲解了各种查询方式的特性和注意事项,例如where语句中浮点数比较的陷阱,join的执行策略,以及如何利用order by、sort by和distribute by进行排序。此外,还提到了分桶抽样和数据库抽样的应用场景,以及如何通过tablesample进行输入裁剪以提高效率。
摘要由CSDN通过智能技术生成

1、select语句

HiveQL一般是用本地模式执行,但涉及到聚合函数之类的就会启动MapReduce任务。可以设置hive.exec.mode.local.auto为true,其他操作也会尽量走本地模式。

select id, name from cast;

-- 依次获取字符串、集合元素(Array)、Map元素、Struct对象
select name, subordinates[0], deductions['State Taxes'], address.city from employee limit 3;

-- 匹配所有以price为前缀的列名,但我本地测试并不成功...
select symbol, `price.*` from stocks;

-- 列值计算、算术计算、简单函数、聚合函数等
select round(price_close) from stocks;

-- 默认是只能执行一个count(distinct)函数
select count(distinct symbol) from stocks;


-- 表生成函数:将每个元素都拆成新的记录,跟聚合函数相反
select explode(subordinates) from employee;
select parse_url_tuple('https://google.com/search?q=rick+and+morty','HOST','PATH','QUERY') AS (HOST,PATH,QUERY);

-- 嵌套子查询
from (
select upper(name), round(salary*(1-deductions['Federal Taxes'])) as salary_with_tax 
from employee
) e
select e.name, e.salary_with_tax
where e.salary_
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值