python - 使用 Vaex 读取 Parquet 文件
问题描述
我正在尝试使用 Vaex 将 Parquet 文件中的一些数据读入 python。
这是我使用该vaex.open
函数得到的输出。
>>> import vaex
>>> trade = vaex.open('trade.parquet')
>>> trade
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/userman/.local/lib/python3.6/site-packages/vaex/dataframe.py", line 3703, in __repr__
return self._head_and_tail_table(format='plain')
File "/home/userman/.local/lib/python3.6/site-packages/vaex/dataframe.py", line 3464, in _head_and_tail_table
return self._as_table(0, n, N - n, N, format=format)
File "/home/userman/.local/lib/python3.6/site-packages/vaex/dataframe.py", line 3599, in _as_table
parts = table_part(i1, i2, parts)
File "/home/userman/.local/lib/python3.6/site-packages/vaex/dataframe.py", line 3573, in table_part
df = self[k1:k2]
File "/home/userman/.local/lib/python3.6/site-packages/vaex/dataframe.py", line 4626, in __getitem__
df = self.trim()
File "/home/userman/.local/lib/python3.6/site-packages/vaex/dataframe.py", line 3859, in trim
df = self if inplace else self.copy()
File "/home/userman/.local/lib/python3.6/site-packages/vaex/dataframe.py", line 5036, in copy
df.add_column(name, column, dtype=self._dtypes_override.get(name))
File "/home/userman/.local/lib/python3.6/site-packages/vaex/dataframe.py", line 6053, in add_column
super(DataFrameArrays, self).add_column(name, data, dtype=dtype)
File "/home/userman/.local/lib/python3.6/site-packages/vaex/dataframe.py", line 2942, in add_column
raise ValueError("array is of length %s, while the length of the DataFrame is %s" % (len(ar), self.length_original()))
ValueError: array is of length 1048576, while the length of the DataFrame is 34421587
数据帧的长度是正确的,但我不明白这与什么1048576
有关。我找到了关于读取 hdf5 文件的先前答案,但它似乎与我的问题无关。数据最初是从 csv 文件中读取的,然后使用 pyarrow 导出到 parquet。
谁能详细说明问题是什么以及如何解决?
解决方案
我遇到了同样的问题,因此,我假设您使用的是 vaex 3.x 尝试最新的 alpha 4.0.0a13,最好是在全新的虚拟环境中。
pip install vaex==4.0.0a13
更新
截至 2021 年 3 月 9 日,vaex 4
pypi 中已将其标记为默认值,因此不再需要指定版本。
pip install vaex
推荐阅读
- php - 如何扫描不存在的 DynamoDb
- html - Flexbox 在重新加载后改变大小
- c# - 关于 TYPE 对象的 2 个问题。Type 对象是引用类型吗?如果这是一个抽象类,我们如何创建 TYPE 对象?
- bash - 如何使用 bash 运行 `mkdir -m -p`?
- mysql - MySQL 数据库中的星号 sip.conf
- nativescript - 如何在 iOS 设备上禁用电子邮件类型的自动大写
- type-conversion - MapStruct:如何在映射器中指定应在目标列表中创建的对象类型?
- git - 恢复错误的 git checkout
- rss - 在 gatsby-plugin-feed 中获取自定义字段
- java - 解析 XML 时如何禁用 XInclude?