when you add data to a partitioned table the partition column name in insert statement should match the table definition
so try changing your insert query to "INSERT OVERWRITE TABLE table2 PARTITION (author)" where author is the column in your table definition Thanks, Nitin On Thu, Nov 15, 2012 at 1:44 PM, Павел Мезенцев <pa...@mezentsev.org> wrote: > Hello all! > > I have a problem with dynamic partitions in hive 0.7.1. > > For example I have 2 tables: > > CREATE TABLE table1 (text STRING); > CREATE TABLE table2 (text STRING) PARTITIONED BY (author STRING); > > And make insert into dynamic partition from table1 to table2 > SET hive.exec.dynamic.partition = true; > SET hive.exec.dynamic.partition.mode = nonstrict; > > Query > INSERT OVERWRITE TABLE table2 PARTITION (author) > SELECT text FROM (SELECT text, 'Tolstoy' AS author FROM table1) tmp; > > failes with error: > FAILED: Error in semantic analysis: Line 1:23 Cannot insert into target > table because column number/types are different author: Table insclause-0 > has 2 columns, but query has 1 columns. > > > Query: > INSERT OVERWRITE TABLE table2 PARTITION (new_author) > SELECT text FROM (SELECT text, 'Tolstoy' AS new_author FROM table1) tmp; > > failes with error: > FAILED: Error in semantic analysis: Non-Partition column appears in the > partition specification: new_author > > > What is happen? Is there any workaround for this problem? > > I know that I can use static partition author = 'Tolsoy', but my real > query is more complex and dynamic partition calculates from several input > fields. > > Best regards > Mezentsev Pavel > Moscow. > > -- Nitin Pawar