20个稳定版本 (3个主要版本)
4.0.0 | 2024年6月7日 |
---|---|
3.1.0 | 2024年4月5日 |
3.0.0 | 2024年3月27日 |
2.2.0 | 2024年2月9日 |
1.0.1 | 2021年7月31日 |
#98 in 解析实现
每月1,225次下载
25KB
252 代码行
parquet2json
一个将Parquet以行分隔JSON形式流式传输的命令行工具。
它只从文件、HTTP或S3位置读取所需范围,并支持偏移/限制和列选择。
它使用Apache Parquet官方原生Rust实现,该实现对压缩格式和复杂类型支持良好。
如何使用
从crates.io安装,并在命令行中执行,例如:
$ cargo install parquet2json
$ parquet2json --help
Usage: parquet2json <FILE> <COMMAND>
Commands:
cat Outputs data as JSON lines
schema Outputs the Thrift schema
rowcount Outputs only the total row count
help Print this message or the help of the given subcommand(s)
Arguments:
<FILE> Location of Parquet input file (file path, HTTP or S3 URL)
Options:
-h, --help Print help
-V, --version Print version
$ parquet2json cat --help
Usage: parquet2json <FILE> cat [OPTIONS]
Options:
-o, --offset <OFFSET> Starts outputting from this row (first row: 0, last row: -1) [default: 0]
-l, --limit <LIMIT> Maximum number of rows to output
-c, --columns <COLUMNS> Select columns by name (comma,separated,?prefixed_optional)
-n, --nulls Outputs null values
-h, --help Print help
S3设置
凭证按标准AWS工具链提供,即通过环境变量(AWS_ACCESS_KEY_ID
和 AWS_SECRET_ACCESS_KEY
)、AWS凭证文件或IAM ECS容器/实例配置文件提供。
默认AWS区域必须通过环境变量(AWS_DEFAULT_REGION
)在AWS凭证文件中设置,并且必须与对象存储桶的区域相匹配。
示例
使用它将输出流式传输到文件和其他工具,如grep
和jq。
输出到文件
$ parquet2json ./myfile.parquet cat > output.jsonl
从S3或HTTP(S3)
$ parquet2json s3://overturemaps-us-west-2/release/2024-03-12-alpha.0/theme=base/type=land/part-00001-10ae8a61-702e-480f-9024-6dee4abd93df-c000.zstd.parquet cat
$ parquet2json https://overturemaps-us-west-2.s3.us-west-2.amazonaws.com/release/2024-03-12-alpha.0/theme%3Dbase/type%3Dland/part-00001-10ae8a61-702e-480f-9024-6dee4abd93df-c000.zstd.parquet cat
使用jq筛选选定列
$ parquet2json ./myfile.pq cat --columns=url,level | jq 'select(.level==3) | .url'
许可协议
依赖关系
~35–47MB
~1M SLoC