首页 > 解决方案 > 使用 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。

谁能详细说明问题是什么以及如何解决?

标签: pythonparquetpyarrowvaex

解决方案


我遇到了同样的问题,因此,我假设您使用的是 vaex 3.x 尝试最新的 alpha 4.0.0a13,最好是在全新的虚拟环境中。

pip install vaex==4.0.0a13

更新

截至 2021 年 3 月 9 日,vaex 4pypi 中已将其标记为默认值,因此不再需要指定版本。

pip install vaex


推荐阅读