hive中的hadoop范围划分

vc9ivgsu  于 2021-06-02  发布在  Hadoop
关注(0)|答案(2)|浏览(326)

配置单元是否支持范围分区?
我的意思是,Hive是否支持以下内容:

insert overwrite table table2 PARTITION (employeeId BETWEEN 2001 and 3000) 
select employeeName FROM emp10 where employeeId BETWEEN 2001 and 3000;

其中表2和表10有两列:
雇员姓名和雇员ID
运行上述查询时,我遇到一个错误:

FAILED: ParseException line 1:56 mismatched input 'BETWEEN' expecting ) near 'employeeId' in destination specification
anauzrmj

anauzrmj1#

不,这是不可能的。即使我使用单独的计算列, insert overwrite table table2 PARTITION (employeeId_range) select employeeName , employeeId/1000 FROM emp10 where employeeId BETWEEN 2000 and 2999; 这将确保所有值都落在同一分区中。在查询表时,因为我们已经知道范围计算器,我们可以 select employeeName , employeeId FROM table2 where employeeId_range=2; 因此,我们也可以并行化给定范围的查询。希望有帮助。

shyt4zoc

shyt4zoc2#

这是不可能的。这里引用了hive文档:
一个表可以有一个或多个分区列,并且为分区列中每个不同的值组合创建一个单独的数据目录

相关问题