我有一个带有 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 不支持范围分区,但您可以在数据加载期间计算范围。
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;
关于hive - 如何使用列的值范围对 Hive 表进行分区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45398092/