[
https://issues.apache.org/jira/browse/HIVE-21897?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16868104#comment-16868104
]
Miklos Gergely edited comment on HIVE-21897 at 6/19/19 11:40 PM:
-----------------------------------------------------------------
[~mithun] after executing those commands:
SHOW EXTENDED foobar;
{code:java}
+-----------------------------+----------------------------------------------------+----------+
| col_name | data_type
| comment |
+-----------------------------+----------------------------------------------------+----------+
| foo | string
| |
| bar | string
| |
| dt | string
| |
| | NULL
| NULL |
| # Partition Information | NULL
| NULL |
| # col_name | data_type
| comment |
| dt | string
| |
| | NULL
| NULL |
| Detailed Table Information | Table(tableName:foobar, dbName:default,
owner:hive, createTime:1560986681, lastAccessTime:0, retention:0,
sd:StorageDescriptor(cols:[FieldSchema(name:foo, type:string, comment:null),
FieldSchema(name:bar, type:string, comment:null), FieldSchema(name:dt,
type:string, comment:null)],
location:hdfs://hive-on-tezt-1.vpc.cloudera.com:8020/warehouse/tablespace/managed/hive/foobar,
inputFormat:org.apache.hadoop.hive.ql.io.orc.OrcInputFormat,
outputFormat:org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat,
compressed:false, numBuckets:-1, serdeInfo:SerDeInfo(name:null,
serializationLib:org.apache.hadoop.hive.ql.io.orc.OrcSerde,
parameters:{serialization.format=1}), bucketCols:[], sortCols:[],
parameters:{}, skewedInfo:SkewedInfo(skewedColNames:[], skewedColValues:[],
skewedColValueLocationMaps:{}), storedAsSubDirectories:false),
partitionKeys:[FieldSchema(name:dt, type:string, comment:null)],
parameters:{last_modified_time=1560986885, totalSize=0, numRows=0,
rawDataSize=0, transactional_properties=insert_only,
COLUMN_STATS_ACCURATE={\"BASIC_STATS\":\"true\"}, numFiles=0, numPartitions=2,
transient_lastDdlTime=1560986885, bucketing_version=2, last_modified_by=hive,
transactional=true}, viewOriginalText:null, viewExpandedText:null,
tableType:MANAGED_TABLE, rewriteEnabled:false, catName:hive, ownerType:USER,
writeId:0) | |
{code}
SHOW CREATE TABLE foobar;
{code:java}
+----------------------------------------------------+
| createtab_stmt |
+----------------------------------------------------+
| CREATE TABLE `foobar`( |
| `foo` string, |
| `bar` string) |
| PARTITIONED BY ( |
| `dt` string) |
| ROW FORMAT SERDE |
| 'org.apache.hadoop.hive.ql.io.orc.OrcSerde' |
| STORED AS INPUTFORMAT |
| 'org.apache.hadoop.hive.ql.io.orc.OrcInputFormat' |
| OUTPUTFORMAT |
| 'org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat' |
| LOCATION |
|
'hdfs://hive-on-tezt-1.vpc.cloudera.com:8020/warehouse/tablespace/managed/hive/foobar'
|
| TBLPROPERTIES ( |
| 'bucketing_version'='2', |
| 'last_modified_by'='hive', |
| 'last_modified_time'='1560986885', |
| 'transactional'='true', |
| 'transactional_properties'='insert_only', |
| 'transient_lastDdlTime'='1560986885') |
+----------------------------------------------------+
{code}
So as it seems the table has only one SerDe, not per partition. Do we want to
allow a different SerDe per partition? Because if we do, it needs planning, and
code changes. Or for now we may stick to the one SerDe / table.
was (Author: mgergely):
[~mithun] after executing those commands:
SHOW EXTENDED foobar;
{code:java}
+-----------------------------+----------------------------------------------------+----------+
| col_name | data_type
| comment |
+-----------------------------+----------------------------------------------------+----------+
| foo | string
| |
| bar | string
| |
| dt | string
| |
| | NULL
| NULL |
| # Partition Information | NULL
| NULL |
| # col_name | data_type
| comment |
| dt | string
| |
| | NULL
| NULL |
| Detailed Table Information | Table(tableName:foobar, dbName:default,
owner:hive, createTime:1560986681, lastAccessTime:0, retention:0,
sd:StorageDescriptor(cols:[FieldSchema(name:foo, type:string, comment:null),
FieldSchema(name:bar, type:string, comment:null), FieldSchema(name:dt,
type:string, comment:null)],
location:hdfs://hive-on-tezt-1.vpc.cloudera.com:8020/warehouse/tablespace/managed/hive/foobar,
inputFormat:org.apache.hadoop.hive.ql.io.orc.OrcInputFormat,
outputFormat:org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat,
compressed:false, numBuckets:-1, serdeInfo:SerDeInfo(name:null,
serializationLib:org.apache.hadoop.hive.ql.io.orc.OrcSerde,
parameters:{serialization.format=1}), bucketCols:[], sortCols:[],
parameters:{}, skewedInfo:SkewedInfo(skewedColNames:[], skewedColValues:[],
skewedColValueLocationMaps:{}), storedAsSubDirectories:false),
partitionKeys:[FieldSchema(name:dt, type:string, comment:null)],
parameters:{last_modified_time=1560986885, totalSize=0, numRows=0,
rawDataSize=0, transactional_properties=insert_only,
COLUMN_STATS_ACCURATE={\"BASIC_STATS\":\"true\"}, numFiles=0, numPartitions=2,
transient_lastDdlTime=1560986885, bucketing_version=2, last_modified_by=hive,
transactional=true}, viewOriginalText:null, viewExpandedText:null,
tableType:MANAGED_TABLE, rewriteEnabled:false, catName:hive, ownerType:USER,
writeId:0) | |
{code}
SHOW CREATE TABLE foobar;
{code:java}
+----------------------------------------------------+
| createtab_stmt |
+----------------------------------------------------+
| CREATE TABLE `foobar`( |
| `foo` string, |
| `bar` string) |
| PARTITIONED BY ( |
| `dt` string) |
| ROW FORMAT SERDE |
| 'org.apache.hadoop.hive.ql.io.orc.OrcSerde' |
| STORED AS INPUTFORMAT |
| 'org.apache.hadoop.hive.ql.io.orc.OrcInputFormat' |
| OUTPUTFORMAT |
| 'org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat' |
| LOCATION |
|
'hdfs://hive-on-tezt-1.vpc.cloudera.com:8020/warehouse/tablespace/managed/hive/foobar'
|
| TBLPROPERTIES ( |
| 'bucketing_version'='2', |
| 'last_modified_by'='hive', |
| 'last_modified_time'='1560986885', |
| 'transactional'='true', |
| 'transactional_properties'='insert_only', |
| 'transient_lastDdlTime'='1560986885') |
+----------------------------------------------------+
{code}
So as it seems the table has only one SerDe, not per partition. Do we want to
allow a different SerDe per partition? Because if we do, it needs planning, and
code changes. Or for now we may stick to the one SerDe / table.
> Setting serde / serde properties for partitions
> -----------------------------------------------
>
> Key: HIVE-21897
> URL: https://issues.apache.org/jira/browse/HIVE-21897
> Project: Hive
> Issue Type: Bug
> Components: Hive
> Affects Versions: 3.1.1
> Reporter: Miklos Gergely
> Assignee: Ashutosh Chauhan
> Priority: Major
> Fix For: 4.0.0
>
>
> According to
> [https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-AddSerDeProperties]
> the SerDe and the SerDe properties can be set for a partition too, so
>
> {code:java}
> ALTERT TABLE table PARTITION (partition_col='partition_value') SET SERDE
> 'serde.class.name';{code}
> Is a valid statement. In fact it is not rejected, but it is not doing
> anything at all. The execution is successful, everything remains the same.
> The same is true for setting the serde properties:
> {code:java}
> ALTER TABLE table PARTITION (partition_col='partition_value') SET
> SERDEPROPERTIES ('property_name'='property_value');{code}
> is also a valid statement, and not doing anything.
> I suggest to modify the parser, and reject these statements. SerDe is for a
> table, and not for a partition.
>
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)