you are little complicating your query with as and tmp tables you can just write simple query for same INSERT OVERWRITE TABLE table2 PARTITION (author) SELECT text, author FROM table1
Tolstory is not any column in table1 so even that fail for query parsing if you want to all the data where author is tolstoy then you use where clause in query and solve that but then when you use then your partition (author='tolstoy') Thanks, Nitin On Thu, Nov 15, 2012 at 4:13 PM, Павел Мезенцев <pa...@mezentsev.org> wrote: > Thank you for right idea. > It is very strange, but normally executed query looks like: > > INSERT OVERWRITE TABLE table2 PARTITION (author) > SELECT text*, author* FROM (SELECT text, 'Tolstoy' AS author FROM table1) > tmp; > > Best regards > Mezentsev Pavel > > > 2012/11/15 Nitin Pawar <nitinpawar...@gmail.com> > >> 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 >> >> > -- Nitin Pawar