Dynamic partition is supported in hive 0.6+. 0.6 is not officially released 
yet, but you can find the branch at 
http://svn.apache.org/repos/asf/hadoop/hive/branches/branch-0.6.

Ning

On Aug 16, 2010, at 6:39 AM, Luke Crouch wrote:

Do I need a certain version of Hive? I'm tried this:

> set hive.exec.dynamic.partition=true;
> set hive.exec.dynamic.partition.mode=nostrict;

And still get:

10/08/16 13:37:36 INFO parse.ParseDriver: Parsing command: FROM ( FROM ( SELECT 
project, file, os, country, dt FROM downloads WHERE dt='2010-07-01' CLUSTER BY 
project, file, dt ) a SELECT TRANSFORM(file, os, country, dt, project) USING 
'/var/local/sfpy/dstat/dstat/transform/reduce.py ' AS (project, file, 
downloads, os, country) ) b INSERT OVERWRITE TABLE daily_file_totals PARTITION 
(dt='2010-07-01', project) SELECT file, downloads, os, country, project
FAILED: Parse Error: line 1:351 mismatched input ')' expecting = in destination 
specification

(i.e., I changed project to the last field of the final SELECT)

Thanks again,
-L

On Sat, Aug 14, 2010 at 12:38 PM, Namit Jain 
<[email protected]<mailto:[email protected]>> wrote:
Project needs to be the last column
In the select list

Also, you need to set a variable to
Enable dynamic prtn inserts


Sent from my iPhone

On Aug 14, 2010, at 9:46 AM, "Luke Crouch" 
<[email protected]<mailto:[email protected]>> wrote:

> I'm trying to do a dynamic partition insert like so:
>
>         FROM (
>             FROM (
>                 SELECT project, file, os, country, dt
>                 FROM test_downloads WHERE dt='2010-06-30'
>                 CLUSTER BY project, file, dt
>             ) a
>             SELECT TRANSFORM(project, file, os, country, dt)
>             USING '/var/local/sfpy/dstat/dstat/transform/reduce.py --
> test'
>             AS (project, file, downloads, os, country)
>         ) b
>         INSERT OVERWRITE TABLE test_daily_file_totals PARTITION 
> (dt='2010-06-30
> ', project)
>         SELECT project, file, downloads, os, country
>
> The test_daily_file_totals table is created like so:
>
> CREATE TABLE IF NOT EXISTS {{ table_name }} (
>     file STRING,
>     downloads INT,
>     os STRING,
>     country STRING
> )
> PARTITIONED BY (dt STRING, project STRING)
> ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
> STORED AS TEXTFILE
>
> But I get an error with the dynamic partition syntax:
>
> FAILED: Parse Error: line 12:89 mismatched input ')' expecting = in
> destination specification
>
> Can someone see something I'm doing wrong in the sql? I have set
> both hive.merge.mapfiles and hive.merge.mapredfiles to false in hive
> configuration.
>
> Thanks,
> -L


Reply via email to