Impala中的parquet存储压缩

mac2024-04-17  34

在Impala中,parquet存储格式的默认压缩方式为snappy。通过以下命令可以修改该配置:

set compression_code=snappy;  (snappy,none,gzip...)

在hive中通过命令查看该表使用了哪种压缩方式:

desc extended tablename;

inputFormat:org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat, outputFormat:org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat, compressed:false

hive命令的方式目前还有bug,在社区中对应的问题为HIVE-2250

参考:

https://issues.apache.org/jira/browse/HIVE-2250

通过parquet-tools查看parquet文件信息:

要想确认Parquet文件是否被压缩可以使用CDH提供的工具parquet-tools,它可以查看一个Parquet的详细元数据信息,如字段信息,是否被压缩以及压缩格式等。

./parquet-tools meta d34b421236b6ffa2-98b4828e000000e3_448743101_data.0.parq

可以看到我们的parquet文件是以SNAPPY默认压缩方式进行的压缩。

//查看parquet文件中字段gender_name的dump信息

parquet_tools dump -c gender_name -d /path/to/parquetfile

//查看parquet文件的dump信息

parquet_tools dump  -d /path/to/parquetfile

//查看parquet文件的前10行内容

parquet_tools head  -n 10 /path/to/parquetfile

//查看parquet文件的meta信息

parquet_tools meta /path/to/parquetfile

//查看parquet文件的schema信息

parquet_tools schema /path/to/parquetfile

parquet_tools可执行文件依赖于parquet-tools-${PARQUET_VERSION}.jar,这可以通过查看parquet_tools的内容知道。通过该jar包可以轻易的在应用中嵌入该功能而免去大量工作去解析代码。

最新回复(0)