sqoop-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Cheolsoo Park (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (SQOOP-489) Cannot define partition keys for Hive tables created through Sqoop
Date Tue, 29 May 2012 19:23:24 GMT

    [ https://issues.apache.org/jira/browse/SQOOP-489?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13285029#comment-13285029
] 

Cheolsoo Park commented on SQOOP-489:
-------------------------------------

OK, thanks for clarification, Jarcec. I agree with you.

I think that there are two cases that we have to deal with:

1) sqoop create-hive-table --table FOO --hive-partition-key X
2) sqoop import --hive-import --table FOO --hive-partition-key X

Following Jarcec's suggestion, the fix would be summarized as follows:

For 1),
 --hive-partition-key X is invalid if X is a column of table FOO. (Note that as of now, --columns
is not available for create-hive-table.)

For 2), 
 i) if --columns is not specified, --hive-partition-key X is invalid if X is a column of table
FOO.
 ii) if --columns is specified, --hive-partition-key X is invalid if X is specified in --columns.

Currently, Sqoop generates ill-formed Hive queries for these cases; however, Sqoop should
rather print a proper warning message.

Please let me know if anyone has other opinions.
                
> Cannot define partition keys for Hive tables created through Sqoop
> ------------------------------------------------------------------
>
>                 Key: SQOOP-489
>                 URL: https://issues.apache.org/jira/browse/SQOOP-489
>             Project: Sqoop
>          Issue Type: Bug
>    Affects Versions: 1.4.1-incubating
>            Reporter: Kathleen Ting
>            Assignee: Cheolsoo Park
>         Attachments: SQOOP-489.patch
>
>
> By enabling the table option, Sqoop includes every column in the table in the create
table query, and by enabling the hive-partition-key option, Sqoop blindly appends the "partitioned
by" clause. Now if you specify one of columns in the table in the hive-partition-key, this
will cause a syntax error in Hive.
> For example, if we have a table 'FOO' that has columns 'I' and 'J':
> sqoop create-hive-table --table FOO ...
> will generate the following Hive query:
> CREATE TABLE IF NOT EXISTS `FOO` ( `I` STRING, `J` STRING)
> Now if we add "--hive-partition-key I" to the command, Sqoop generates the following
query:
> CREATE TABLE IF NOT EXISTS `FOO` ( `I` STRING, `J` STRING) PARTITIONED BY (I STRING)
> The problem is that since 'I' is defined twice (once in CRATE TABLE and once in PARTITIONED
BY), this is a syntax error in Hive.
> This correct query would be something like:
> CREATE TABLE IF NOT EXISTS `FOO` (`J` STRING) PARTITIONED BY (I STRING)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message