给定一个压缩文件,写在 hadoop 平台上,格式如下:
- 阿芙罗
- Parquet
- 序列文件
如何找到使用的压缩编解码器?假设使用以下压缩编解码器之一(并且文件名中没有文件扩展名):
- 活泼
- Gzip(Avro 不支持)
- Deflate(Parquet 不支持)
最佳答案
Parquet 的 Java 实现包括 parquet-tools
实用程序,它提供了多个命令。查看其 documentation page用于构建和入门。各个命令的更详细描述由 parquet-tools
本身打印。您要查找的命令是 meta
。这将显示各种元数据,包括压缩。您可以找到示例输出 here , 显示 SNAPPY 压缩。
请注意,压缩算法不必在整个文件中都相同。不同的列 block 可以使用不同的压缩,因此压缩编解码器没有单个字段,而是每个列 block 一个。 (列 block 是属于一个行组的列的一部分。)然而,在实践中,您可能会发现所有列 block 都使用相同的压缩编解码器。
Avro 有一个类似的工具,叫做 avro-tool
。我不太熟悉它,但它 has一个 getmeta
命令,它应该向您显示所使用的压缩编解码器。
关于hadoop - 查找用于 hadoop 文件的压缩编解码器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52908660/