yes this is restrictive. There is a JIRA open for this but we have not fixed 
this yet... The only possible work around for this particular case is to use 
the multi group by format and list out all the 12 partitions in your case...

FROM tab1
INSERT OVERWRITE TABLE tab2 PARTITION(month=1) SELECT  day, count(1) WHERE 
month=1 GROUP BY day
INSERT OVERWRITE TABLE tab2 PARTITION(month=2) SELECT day, count(1) WHERE 
month=2 GROUP BY day
....
INSERT OVERWRITE TABLE tab2 PARTITION(month=12) SELECT day, count(1) WHERE 
month=12 GROUP BY day;

Ashish


________________________________________
From: Vijay [[email protected]]
Sent: Friday, September 04, 2009 9:09 PM
To: [email protected]
Subject: Inserting data into Hive Tables from queries

Hi,

When using the INSERT OVERWRITE TABLE ... FROM SELECT syntax, you can specify 
partition information for the inserts. However, these partition values can only 
be literals. This seems too restrictive. For example, I have a query like this:
SELECT month, day, count(1) FROM tab1 GROUP BY month, day;

When I insert into tab2 from the above select statement, I'd like the month and 
day values to be used as partitions for the insert. Is there any way of doing 
this? May be I'm trying to do this the wrong way?

Thanks,
Vijay

Reply via email to