parquet - 如何确定用于特定列的 Parquet 编码?
问题描述
我有一些 Parquet 数据。我了解 Parquet 可以使用任意数量的编码来对列进行编码,例如字典编码或运行长度编码。
我想确定给定数据集中的给定列使用哪种编码 Parquet。
我尝试使用 parquet-cli 在我生成的一个简单的单列测试数据集上执行此操作:
$ parquet meta numbers.parquet/part-00000-7f0e3817-4021-49f4-b77c-e7e0ac495187-c000.snappy.parquet
File path: numbers.parquet/part-00000-7f0e3817-4021-49f4-b77c-e7e0ac495187-c000.snappy.parquet
Created by: parquet-mr version 1.10.1 (build a89df8f9932b6ef6633d06069e50c9b7970bebd1)
Properties:
org.apache.spark.version: 3.1.2
org.apache.spark.sql.parquet.row.metadata: {"type":"struct","fields":[{"name":"id","type":"long","nullable":false,"metadata":{}}]}
Schema:
message spark_schema {
required int64 id;
}
Row group 0: count: 6 15.83 B records start: 4 total: 95 B
--------------------------------------------------------------------------------
type encodings count avg size nulls min / max
id INT64 S _ 6 15.83 B 0 "0" / "5"
我不明白下面的符号是什么encodings
意思。此数据集中有一个名为id
我要探索的列。
它是如何编码的?是什么意思S _
?此表中是否有关于“编码”的所有可能输出的描述?我无法通过parquet help meta
Parquet 文档或在 Parquet 文档中找到任何内容。
或者是否有其他方式我应该尝试获取这些信息?
解决方案
推荐阅读
- c# - 有没有办法区分连续约会的单次出现是第一次、中间还是最后一次?
- arrays - 使用 sizeof 将字符附加到字符串形式用户的末尾
- mysql - Laravel Eloquant 删除子表行 - onDelete('cascade') 不删除子表行
- python - 如何在 django rest 框架中过滤 ManyToManyField
- amazon-web-services - 使用 IAM 角色从脚本访问 S3 存储桶
- amazon-s3 - 如何使用 C#(ASP.Net Core)将文件从 razor 上传到 s3 存储桶
- python - How do i import single object from django to a html template
- mysql - 在 MariaDB/InnoDB 中运行 ADD COLUMN AFTER 是否有任何风险?
- python - scipy.interpolate.interp2d:我真的有太多数据点吗?
- mongodb - Mongo如何排除嵌套数组中的嵌套_id