查找用于 hadoop 文件的压缩编解码器
Find compression codec used for an hadoop file
给定一个在 hadoop 平台上以下列格式之一编写的压缩文件:
- 阿芙罗
- 实木复合地板
- 序列文件
如何找到使用的压缩编解码器?假设使用以下压缩编解码器之一(并且文件名中没有文件扩展名):
- 活泼
- Gzip(Avro 不支持)
- Deflate(Parquet 不支持)
Parquet 的 Java 实现包括 parquet-tools
实用程序,提供了多个命令。查看其 documentation page for building and getting started. The more detailed descriptions of the individual commands are printed by parquet-tools
itself. The command you are looking for is meta
. This will show all kinds of metadata, including compressions. You can find an example output here,显示 SNAPPY 压缩。
请注意,压缩算法不必在整个文件中都相同。不同的列块可以使用不同的压缩,因此压缩编解码器没有单个字段,而是每个列块一个。 (列块是属于一个行组的列的一部分。)然而,在实践中,您可能会发现所有列块都使用相同的压缩编解码器。
Avro 有一个类似的实用程序,称为 avro-tool
。我不太熟悉它,但它 has 一个 getmeta
命令应该会告诉你使用的压缩编解码器。
给定一个在 hadoop 平台上以下列格式之一编写的压缩文件:
- 阿芙罗
- 实木复合地板
- 序列文件
如何找到使用的压缩编解码器?假设使用以下压缩编解码器之一(并且文件名中没有文件扩展名):
- 活泼
- Gzip(Avro 不支持)
- Deflate(Parquet 不支持)
Parquet 的 Java 实现包括 parquet-tools
实用程序,提供了多个命令。查看其 documentation page for building and getting started. The more detailed descriptions of the individual commands are printed by parquet-tools
itself. The command you are looking for is meta
. This will show all kinds of metadata, including compressions. You can find an example output here,显示 SNAPPY 压缩。
请注意,压缩算法不必在整个文件中都相同。不同的列块可以使用不同的压缩,因此压缩编解码器没有单个字段,而是每个列块一个。 (列块是属于一个行组的列的一部分。)然而,在实践中,您可能会发现所有列块都使用相同的压缩编解码器。
Avro 有一个类似的实用程序,称为 avro-tool
。我不太熟悉它,但它 has 一个 getmeta
命令应该会告诉你使用的压缩编解码器。