我有一个有2列的Hive表。员工ID和薪水。
数据如下所示。
Employee ID Salary
1 10000.08
2 20078.67
3 20056.45
4 30000.76
5 10045.14
6 43567.76
我想基于Salary Column创建分区。对于薪水范围10000到20000,20001到30000的示例分区。
我如何实现这一目标。
答案 0 :(得分:4)
Hive不支持范围分区,但您可以在数据加载期间计算范围。
创建由salary_range分区的表:
create table your_table
(
employee_id bigint,
salary double
)
partitioned by (salary_range bigint)
使用案例插入薪资范围计算:
insert overwrite table your_table partition (salary_range)
select employee_id, salary,
case
when salary between 10000 and 20000 then 20000
when salary between 20001 and 30000 then 30000
...
else ...
end as salary_range
from some_table;