hive-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Chaoyu Tang (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HIVE-12506) SHOW CREATE TABLE command creates a table that does not work for RCFile format
Date Sun, 29 Nov 2015 17:28:10 GMT

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

Chaoyu Tang commented on HIVE-12506:
------------------------------------

The "show create table" output should use SERDE instead of DELIMITED for row_format and SERDEPROPERTIES
for the DELIMITED properties if any. It can ensure a table with any kind of serde/fileformat
to be recreated correctly.
{code}
row_format
  : DELIMITED [FIELDS TERMINATED BY char [ESCAPED BY char]] [COLLECTION ITEMS TERMINATED BY
char]
        [MAP KEYS TERMINATED BY char] [LINES TERMINATED BY char]
        [NULL DEFINED AS char]   -- (Note: Available in Hive 0.13 and later)
  | SERDE serde_name [WITH SERDEPROPERTIES (property_name=property_value, property_name=property_value,
...)]
{code}

> SHOW CREATE TABLE command creates a table that does not work for RCFile format
> ------------------------------------------------------------------------------
>
>                 Key: HIVE-12506
>                 URL: https://issues.apache.org/jira/browse/HIVE-12506
>             Project: Hive
>          Issue Type: Bug
>          Components: Serializers/Deserializers
>    Affects Versions: 1.1.1
>            Reporter: Eric Lin
>            Assignee: Chaoyu Tang
>
> See the following test case:
> 1) Create a table with RCFile format:
> {code}
> DROP TABLE IF EXISTS test;
> CREATE TABLE test (a int) PARTITIONED BY (p int)
> ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' 
> STORED AS RCFILE;
> {code}
> 2) run "DESC FORMATTED test"
> {code}
> # Storage Information
> SerDe Library:      	org.apache.hadoop.hive.serde2.columnar.ColumnarSerDe
> InputFormat:        	org.apache.hadoop.hive.ql.io.RCFileInputFormat
> OutputFormat:       	org.apache.hadoop.hive.ql.io.RCFileOutputFormat
> {code}
> shows that SerDe used is "ColumnarSerDe"
> 3) run "SHOW CREATE TABLE" and get the output:
> {code}
> CREATE TABLE `test`(
>   `a` int)
> PARTITIONED BY (
>   `p` int)
> ROW FORMAT DELIMITED
>   FIELDS TERMINATED BY '|'
> STORED AS INPUTFORMAT
>   'org.apache.hadoop.hive.ql.io.RCFileInputFormat'
> OUTPUTFORMAT
>   'org.apache.hadoop.hive.ql.io.RCFileOutputFormat'
> LOCATION
>   'hdfs://node5.lab.cloudera.com:8020/user/hive/warehouse/case_78732.db/test'
> TBLPROPERTIES (
>   'transient_lastDdlTime'='1448343875')
> {code}
> Note that there is no mention of "ColumnarSerDe"
> 4) Drop the table and then create the table again using the output from 3)
> 5) Check the output of "DESC FORMATTED test"
> {code}
> # Storage Information
> SerDe Library:      	org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
> InputFormat:        	org.apache.hadoop.hive.ql.io.RCFileInputFormat
> OutputFormat:       	org.apache.hadoop.hive.ql.io.RCFileOutputFormat
> {code}
> The SerDe falls back to "LazySimpleSerDe", which is not correct.
> Any further query tries to INSERT or SELECT this table will fail with errors
> I suspect that we can't specify ROW FORMAT DELIMITED with ROW FORMAT SERDE at the same
time at table creation, this causes confusion to end users as copy table structure using "SHOW
CREATE TABLE" will not work.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message