当前位置: 首页 > 知识库问答 >
问题:

如何使用列的值范围对 Hive 表进行分区

殷耀
2023-03-14

我有一个蜂巢表2columns.EmployeeID和工资。

数据如下所示。

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的工资范围。

我如何实现这一点。

共有1个答案

甄成弘
2023-03-14

配置单元不支持范围分区,但您可以在数据加载期间计算范围。

> < li>

创建按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;
 类似资料:
  • 问题内容: 我有一个包含类别,日期和费率的表。每个类别在不同日期可以具有不同的费率,一个类别在给定日期只能具有一个费率。 唯一索引(类别,日期,费率)我希望针对每个类别将所有连续的日期范围归为一组,并仅保留范围的开始和结束。对于前面的示例,我们将有: 我在论坛中找到了一个类似的解决方案,但并未完全给出结果 请参见SQL FIDDLE 如何在mysql中做同样的事情?请帮忙! 问题答案: MySQL

  • 我有一个遗传数据集,我想对基因组中物理上接近的遗传变异/行进行分组。我想对每个染色体()基因组中某些斑点范围内的基因进行分组。 我的“spots”数据集包含变量/行需要在一定范围内的位置,如下所示: 我的< code>low和< code>high列是我希望查看下一个数据集中是否有任何行落入其中的范围,同时考虑到染色体(< code>chrom)也必须匹配。具有唯一范围和chrom组合的每一行都是

  • 我想做的是从一个列表中引用几个不同的范围,即。我想要4-6元素,12-18元素,等等。这是我最初的尝试: 我希望它能做同样的事情: 但是我有一个语法错误。最好/最简单的方法是什么?

  • 问题内容: 假设我有一个带有数字列的表(我们称其为“分数”)。 我想生成一个计数表,该表显示每个范围内得分出现的次数。 例如: 在此示例中,分数在0到9之间的行有11行,分数在10到19之间的行有14行,分数在20-29范围内的行有3行。 有一个简单的方法来设置它吗?您有什么推荐的吗? 问题答案: 在SQL Server 2000上,投票率最高的答案均不正确。也许它们使用的是其他版本。 这是它们在

  • 假设我有n个值为的元素。让所有值的总和表示为X,我们强制每个元素都是 放入具有最小累积和的分区中。对如何解决这个问题有什么想法吗?

  • 给定任何熊猫数据帧。我想选择列A, B和F: Z 我已经尝试过了但是没有成功。请告诉我怎么做。