Hadoop 是否可以压缩配置单元外部表中包含Json数据的拼花地板文件?

Hadoop 是否可以压缩配置单元外部表中包含Json数据的拼花地板文件?,hadoop,hive,cloudera,hiveql,parquet,Hadoop,Hive,Cloudera,Hiveql,Parquet,我想知道如何压缩配置单元外部表中包含Json数据的拼花文件。怎样才能做到呢 我创建了如下外部表: create table parquet_table_name3(id BIGINT,created_at STRING,source STRING,favorited BOOLEAN) ROW FORMAT SERDE 'parquet.hive.serde.ParquetHiveSerDe' LOCATION '/user/cloudera/parquet2'; 我已经设置了压缩属性 set

我想知道如何压缩配置单元外部表中包含Json数据的拼花文件。怎样才能做到呢

我创建了如下外部表:

create table parquet_table_name3(id BIGINT,created_at STRING,source STRING,favorited BOOLEAN) ROW FORMAT SERDE 'parquet.hive.serde.ParquetHiveSerDe' LOCATION '/user/cloudera/parquet2';
我已经设置了压缩属性

set parquet.compression=GZIP;
并通过执行

GZIP <file name> ( i.e 000000_0.Parquet) 
我得到了下面的结果

NULL    NULL    NULL    NULL
NULL    NULL    NULL    NULL

您能告诉我为什么我得到的是空值而不是结果吗?如何在配置单元外部表中进行拼花文件压缩(如果它包含json数据)?有人能帮我在蜂箱外部表中压缩吗?

Duh!不能“从外部”压缩现有的拼花地板文件。这是一种柱状格式,内部结构极其复杂,就像兽人一样;文件“骨架”需要快速随机访问(即无压缩),每个数据块必须单独压缩,因为它们是单独访问的

当您创建一个新的拼花文件时,您请求SerDe库根据
Parquet.compression
Hive属性压缩文件中的数据。
在读取时,SerDe然后检查每个数据文件的压缩编解码器并相应地解压缩


快速的谷歌搜索会返回一些必须阅读的内容,比如和。

Duh!不能“从外部”压缩现有的拼花地板文件。这是一种柱状格式,内部结构极其复杂,就像兽人一样;文件“骨架”需要快速随机访问(即无压缩),每个数据块必须单独压缩,因为它们是单独访问的

当您创建一个新的拼花文件时,您请求SerDe库根据
Parquet.compression
Hive属性压缩文件中的数据。
在读取时,SerDe然后检查每个数据文件的压缩编解码器并相应地解压缩


快速谷歌搜索会返回一些必须阅读的内容,如和。

这也适用于Apache Arrow-您的语言库(例如Ruby)可能会提供一个压缩选项,但如果它压缩.parquet文件而不是告诉parquet在内部进行压缩,则不会正确执行。拼花地板GZip压缩与GZip foo.Parquet不同!这没有很好的文档记录,我花了一段时间才理解。这也适用于Apache Arrow-您的语言库(例如Ruby)可能提供了一个压缩选项,但是如果它压缩.parquet文件而不是告诉parquet在内部压缩,那么它就做得不正确。拼花地板GZip压缩与GZip foo.Parquet不同!这是没有很好的记录,我花了一段时间来理解。
NULL    NULL    NULL    NULL
NULL    NULL    NULL    NULL