You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@spark.apache.org by "Abhishek Madav (JIRA)" <ji...@apache.org> on 2017/05/10 17:38:04 UTC
[jira] [Updated] (SPARK-20697) MSCK REPAIR TABLE resets the Storage
Information for bucketed hive tables.
[ https://issues.apache.org/jira/browse/SPARK-20697?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Abhishek Madav updated SPARK-20697:
-----------------------------------
Description:
MSCK REPAIR TABLE used to recover partitions for a partitioned+bucketed table does not restore the bucketing information to the storage descriptor in the metastore.
Steps to reproduce:
1) Create a paritioned+bucketed table in hive: CREATE TABLE partbucket(a int) PARTITIONED BY (b int) CLUSTERED BY (a) INTO 10 BUCKETS ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';
2) In Hive-CLI issue a desc formatted for the table.
# col_name data_type comment
a int
# Partition Information
# col_name data_type comment
b int
# Detailed Table Information
Database: sparkhivebucket
Owner: devbld
CreateTime: Wed May 10 10:31:07 PDT 2017
LastAccessTime: UNKNOWN
Protect Mode: None
Retention: 0
Location: hdfs://localhost:8020/user/hive/warehouse/partbucket
Table Type: MANAGED_TABLE
Table Parameters:
transient_lastDdlTime 1494437467
# Storage Information
SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
InputFormat: org.apache.hadoop.mapred.TextInputFormat
OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
Compressed: No
Num Buckets: 10
Bucket Columns: [a]
Sort Columns: []
Storage Desc Params:
field.delim ,
serialization.format ,
3) In spark-shell,
scala> spark.sql("MSCK REPAIR TABLE partbucket")
4) Back to Hive-CLI
desc formatted partbucket;
# col_name data_type comment
a int
# Partition Information
# col_name data_type comment
b int
# Detailed Table Information
Database: sparkhivebucket
Owner: devbld
CreateTime: Wed May 10 10:31:07 PDT 2017
LastAccessTime: UNKNOWN
Protect Mode: None
Retention: 0
Location: hdfs://localhost:8020/user/hive/warehouse/sparkhivebucket.db/partbucket
Table Type: MANAGED_TABLE
Table Parameters:
spark.sql.partitionProvider catalog
transient_lastDdlTime 1494437647
# Storage Information
SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
InputFormat: org.apache.hadoop.mapred.TextInputFormat
OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
Compressed: No
Num Buckets: -1
Bucket Columns: []
Sort Columns: []
Storage Desc Params:
field.delim ,
serialization.format ,
Further inserts to this table cannot be made in bucketed fashion through Hive.
was:
MSCK REPAIR TABLE used to recover partitions for a partitioned+bucketed table does not restore the bucketing information to the storage descriptor in the metastore.
Steps to reproduce:
1) Create a paritioned+bucketed table in hive: CREATE TABLE partbucket(a int) PARTITIONED BY (b int) CLUSTERED BY (a) INTO 10 BUCKETS ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';
2) In Hive-CLI issue a desc formatted for the table.
# col_name data_type comment
a int
# Partition Information
# col_name data_type comment
b int
# Detailed Table Information
Database: sparkhivebucket
Owner: devbld
CreateTime: Wed May 10 10:31:07 PDT 2017
LastAccessTime: UNKNOWN
Protect Mode: None
Retention: 0
Location: hdfs://localhost:8020/user/hive/warehouse/partbucket
Table Type: MANAGED_TABLE
Table Parameters:
transient_lastDdlTime 1494437467
# Storage Information
SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
InputFormat: org.apache.hadoop.mapred.TextInputFormat
OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
Compressed: No
Num Buckets: 10
Bucket Columns: [a]
Sort Columns: []
Storage Desc Params:
field.delim ,
serialization.format ,
3) In spark-shell,
scala> spark.sql("MSCK REPAIR TABLE partbucket")
4) Back to Hive-CLI
desc formatted partbucket;
# col_name data_type comment
a int
# Partition Information
# col_name data_type comment
b int
# Detailed Table Information
Database: sparkhivebucket
Owner: devbld
CreateTime: Wed May 10 10:31:07 PDT 2017
LastAccessTime: UNKNOWN
Protect Mode: None
Retention: 0
Location: hdfs://localhost:8020/user/hive/warehouse/sparkhivebucket.db/partbucket
Table Type: MANAGED_TABLE
Table Parameters:
spark.sql.partitionProvider catalog
transient_lastDdlTime 1494437647
# Storage Information
SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
InputFormat: org.apache.hadoop.mapred.TextInputFormat
OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
Compressed: No
Num Buckets: -1
Bucket Columns: []
Sort Columns: []
Storage Desc Params:
field.delim ,
serialization.format ,
> MSCK REPAIR TABLE resets the Storage Information for bucketed hive tables.
> --------------------------------------------------------------------------
>
> Key: SPARK-20697
> URL: https://issues.apache.org/jira/browse/SPARK-20697
> Project: Spark
> Issue Type: Bug
> Components: SQL
> Affects Versions: 2.1.0
> Reporter: Abhishek Madav
>
> MSCK REPAIR TABLE used to recover partitions for a partitioned+bucketed table does not restore the bucketing information to the storage descriptor in the metastore.
> Steps to reproduce:
> 1) Create a paritioned+bucketed table in hive: CREATE TABLE partbucket(a int) PARTITIONED BY (b int) CLUSTERED BY (a) INTO 10 BUCKETS ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';
> 2) In Hive-CLI issue a desc formatted for the table.
> # col_name data_type comment
>
> a int
>
> # Partition Information
> # col_name data_type comment
>
> b int
>
> # Detailed Table Information
> Database: sparkhivebucket
> Owner: devbld
> CreateTime: Wed May 10 10:31:07 PDT 2017
> LastAccessTime: UNKNOWN
> Protect Mode: None
> Retention: 0
> Location: hdfs://localhost:8020/user/hive/warehouse/partbucket
> Table Type: MANAGED_TABLE
> Table Parameters:
> transient_lastDdlTime 1494437467
>
> # Storage Information
> SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
> InputFormat: org.apache.hadoop.mapred.TextInputFormat
> OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
> Compressed: No
> Num Buckets: 10
> Bucket Columns: [a]
> Sort Columns: []
> Storage Desc Params:
> field.delim ,
> serialization.format ,
> 3) In spark-shell,
> scala> spark.sql("MSCK REPAIR TABLE partbucket")
> 4) Back to Hive-CLI
> desc formatted partbucket;
> # col_name data_type comment
>
> a int
>
> # Partition Information
> # col_name data_type comment
>
> b int
>
> # Detailed Table Information
> Database: sparkhivebucket
> Owner: devbld
> CreateTime: Wed May 10 10:31:07 PDT 2017
> LastAccessTime: UNKNOWN
> Protect Mode: None
> Retention: 0
> Location: hdfs://localhost:8020/user/hive/warehouse/sparkhivebucket.db/partbucket
> Table Type: MANAGED_TABLE
> Table Parameters:
> spark.sql.partitionProvider catalog
> transient_lastDdlTime 1494437647
>
> # Storage Information
> SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
> InputFormat: org.apache.hadoop.mapred.TextInputFormat
> OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
> Compressed: No
> Num Buckets: -1
> Bucket Columns: []
> Sort Columns: []
> Storage Desc Params:
> field.delim ,
> serialization.format ,
> Further inserts to this table cannot be made in bucketed fashion through Hive.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@spark.apache.org
For additional commands, e-mail: issues-help@spark.apache.org