支持Parquet文件格式的Python
项目描述
parquet-python
parquet-python是一个纯Python实现(目前只有读取支持)的Parquet格式。它包含一个用于读取parquet文件并将数据输出到stdout作为JSON或TSV的脚本(无需JVM启动开销)。性能尚未优化,但它在调试和快速查看文件中的数据时很有用。
尚未实现或测试Parquet格式中的所有部分,例如嵌套数据——请参阅下面的待办事项以获取完整列表。尽管如此,parquet-python能够读取Parquet兼容性项目中的所有数据文件。
要求
parquet-python已在python 2.7、3.6和3.7上进行了测试。它依赖于pythrift2,并且可选地依赖于python-snappy(对于snappy压缩文件,请还安装parquet-python[snappy])。
入门
parquet-python 可通过 PyPi 获取,并可以使用 pip install parquet 进行安装。该软件包包括 parquet 命令,用于读取 Python 文件,例如 parquet test.parquet。有关完整用法,请参阅 parquet –help。
示例
parquet-python 目前有两个程序接口,与 Python 的 csv 读取器功能类似。首先,它支持 DictReader,每次返回一行字典。其次,它有一个读取器,返回每行的值列表。这两个功能都需要文件对象,并支持可选的 columns 字段,以仅读取指定的列。
import parquet
import json
## assuming parquet file with two rows and three columns:
## foo bar baz
## 1 2 3
## 4 5 6
with open("test.parquet") as fo:
# prints:
# {"foo": 1, "bar": 2}
# {"foo": 4, "bar": 5}
for row in parquet.DictReader(fo, columns=['foo', 'bar']):
print(json.dumps(row))
with open("test.parquet") as fo:
# prints:
# 1,2
# 4,5
for row in parquet.reader(fo, columns=['foo', 'bar]):
print(",".join([str(r) for r in row]))
待办事项
支持已弃用的 bitpacking
修复重复级和定义级处理
嵌套模式、null 数据测试
通过 snakebite 和/或 webhdfs 支持从 HDFS 读取数据。
实现写入
性能评估和优化(即与 c++、java 实现相比如何)
贡献
通过 Pull Requests 进行。请在更改中包含测试,并遵循 pep8。
要运行测试,您必须安装并执行 tox(《pip install tox》以运行所有支持的版本)。如果您只想为当前版本运行,请执行:pip install -r requirements-development.txt 然后运行 nosetests。
项目详情
下载文件
下载适合您平台文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源分发
构建分发
parquet-1.3.1.tar.gz 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | fb1c90768c1b9159d4d6a9b3112ea8107b0b46d7491c5ac452ba7350f333bf0a |
|
MD5 | 04e7aaa557a67e3408ae4c4d40c74ed2 |
|
BLAKE2b-256 | 390656482f6834135a67dfc5a2bfce071a75be5c8c91edd8e319d69eb56b4644 |
parquet-1.3.1-py3-none-any.whl 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a492a08643b51af8b4c2a25d97e1667170a483fc68ca408979b080ae9d771f51 |
|
MD5 | c2ce908f97beb2e24929b586ca00d721 |
|
BLAKE2b-256 | 14a6d57a2fe5caac3e0e0cdb78c0e450f30f953a590ecf94478065f33feb3d8f |