diff --git ql/src/java/org/apache/hadoop/hive/ql/io/parquet/serde/ParquetHiveSerDe.java ql/src/java/org/apache/hadoop/hive/ql/io/parquet/serde/ParquetHiveSerDe.java index d63fc72..4994309 100644 --- ql/src/java/org/apache/hadoop/hive/ql/io/parquet/serde/ParquetHiveSerDe.java +++ ql/src/java/org/apache/hadoop/hive/ql/io/parquet/serde/ParquetHiveSerDe.java @@ -70,7 +70,8 @@ * A ParquetHiveSerDe for Hive (with the deprecated package mapred) * */ -@SerDeSpec(schemaProps = {serdeConstants.LIST_COLUMNS, serdeConstants.LIST_COLUMN_TYPES}) +@SerDeSpec(schemaProps = {serdeConstants.LIST_COLUMNS, serdeConstants.LIST_COLUMN_TYPES, + ParquetHiveSerDe.COMPRESSIONTYPE}) public class ParquetHiveSerDe extends AbstractSerDe { public static final Text MAP_KEY = new Text("key"); public static final Text MAP_VALUE = new Text("value"); @@ -99,6 +100,10 @@ private LAST_OPERATION status; private long serializedSize; private long deserializedSize; + private String compressionType; + + private static final String DEFAULTCOMPRESSION = "UNCOMPRESSED"; + public static final String COMPRESSIONTYPE="parquet.compression"; @Override public final void initialize(final Configuration conf, final Properties tbl) throws SerDeException { @@ -110,6 +115,9 @@ public final void initialize(final Configuration conf, final Properties tbl) thr final String columnNameProperty = tbl.getProperty(serdeConstants.LIST_COLUMNS); final String columnTypeProperty = tbl.getProperty(serdeConstants.LIST_COLUMN_TYPES); + // Get compression properties + compressionType = tbl.getProperty(COMPRESSIONTYPE, DEFAULTCOMPRESSION); + if (columnNameProperty.length() == 0) { columnNames = new ArrayList(); } else { diff --git ql/src/test/queries/clientpositive/create_like.q ql/src/test/queries/clientpositive/create_like.q index eb9f191..b8f1c42 100644 --- ql/src/test/queries/clientpositive/create_like.q +++ ql/src/test/queries/clientpositive/create_like.q @@ -62,3 +62,9 @@ DESCRIBE FORMATTED doctors; CREATE TABLE doctors2 like doctors; DESCRIBE FORMATTED doctors2; + +CREATE TABLE CompressedParquetTable(a INT, b STRING) STORED AS PARQUET TBLPROPERTIES("parquet.compression"="LZO"); +CREATE TABLE LikeCompressedParquetTable LIKE CompressedParquetTable; + +DESCRIBE FORMATTED LikeCompressedParquetTable; + diff --git ql/src/test/results/clientpositive/create_like.q.out ql/src/test/results/clientpositive/create_like.q.out index 7d05b4f..0c82cea 100644 --- ql/src/test/results/clientpositive/create_like.q.out +++ ql/src/test/results/clientpositive/create_like.q.out @@ -405,3 +405,51 @@ Bucket Columns: [] Sort Columns: [] Storage Desc Params: serialization.format 1 +PREHOOK: query: CREATE TABLE CompressedParquetTable(a INT, b STRING) STORED AS PARQUET TBLPROPERTIES("parquet.compression"="LZO") +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@CompressedParquetTable +POSTHOOK: query: CREATE TABLE CompressedParquetTable(a INT, b STRING) STORED AS PARQUET TBLPROPERTIES("parquet.compression"="LZO") +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@CompressedParquetTable +PREHOOK: query: CREATE TABLE LikeCompressedParquetTable LIKE CompressedParquetTable +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@LikeCompressedParquetTable +POSTHOOK: query: CREATE TABLE LikeCompressedParquetTable LIKE CompressedParquetTable +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@LikeCompressedParquetTable +PREHOOK: query: DESCRIBE FORMATTED LikeCompressedParquetTable +PREHOOK: type: DESCTABLE +PREHOOK: Input: default@likecompressedparquettable +POSTHOOK: query: DESCRIBE FORMATTED LikeCompressedParquetTable +POSTHOOK: type: DESCTABLE +POSTHOOK: Input: default@likecompressedparquettable +# col_name data_type comment + +a int +b string + +# Detailed Table Information +Database: default +#### A masked pattern was here #### +Protect Mode: None +Retention: 0 +#### A masked pattern was here #### +Table Type: MANAGED_TABLE +Table Parameters: + parquet.compression LZO +#### A masked pattern was here #### + +# Storage Information +SerDe Library: org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe +InputFormat: org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat +OutputFormat: org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat +Compressed: No +Num Buckets: -1 +Bucket Columns: [] +Sort Columns: [] +Storage Desc Params: + serialization.format 1