user3279174
user3279174

Reputation: 99

Range Partitioning in Hive

Does hive support range partitioning?

I mean does hive supports something like below:

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

Where table2 & emp10 has two columns:

employeeName & employeeId

When I run the above query i am facing an error:

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

Upvotes: 2

Views: 4406

Answers (2)

Kunal
Kunal

Reputation: 126

No its not possible. Even I use separate calculated column like ,

insert overwrite table table2 PARTITION (employeeId_range) select employeeName , employeeId/1000 FROM emp10 where employeeId BETWEEN 2000 and 2999;

which will make sure all values fall in same partition. while querying the table since we already know the range calculator, we can

select employeeName , employeeId FROM table2 where employeeId_range=2;

Thus we can also parallelise the queries of given ranges. Hope it helps.

Upvotes: 1

www
www

Reputation: 4391

Is not possible. Here is a quote from Hive documentation :

A table can have one or more partition columns and a separate data directory is created for each distinct value combination in the partition columns

Upvotes: 2

Related Questions