我有一个带有 2 列的 Hive 表。员工 ID 和薪水。
数据如下所示。
Employee ID Salary
1 10000.08
2 20078.67
3 20056.45
4 30000.76
5 10045.14
6 43567.76
我想根据薪资列创建分区。例如薪资范围为 10000 到 20000、20001 到 30000 的分区。
我如何做到这一点。
我有一个带有 2 列的 Hive 表。员工 ID 和薪水。
数据如下所示。
Employee ID Salary
1 10000.08
2 20078.67
3 20056.45
4 30000.76
5 10045.14
6 43567.76
我想根据薪资列创建分区。例如薪资范围为 10000 到 20000、20001 到 30000 的分区。
我如何做到这一点。
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;