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