0

我目前正在处理一堆 CSV 文件并将它们转换为 Parquet。我将这些与 Hive 一起使用并直接查询文件。我想切换到 Dask 进行数据处理。我正在阅读的数据具有可选列,其中一些是布尔类型。我知道 Pandas 目前不支持可选的 bool 类型,但是无论如何要指定 FastParquet 或 PyArrow 我希望字段是什么类型?我对 DF 中的 float64 数据感到满意,但由于现有文件已经是可选的布尔类型,因此无法在 Parquet 存储中使用它。

4

1 回答 1

1

您应该尝试使用fastparquet引擎和以下关键字参数

object_encoding={'bool_col': 'bool'}

此外,pandas现在确实允许使用 nans 作为扩展类型的布尔列,但它还不是完全默认的。那应该直接起作用。

例子

import fastparquet as fp
df = pd.DataFrame({'a': [0, 1, 'nan']})
fp.write('out.parq', df, object_encoding={'a': 'bool'})
fp.write('out.parq', df.astype(float), object_encoding={'a': 'bool'})
于 2019-07-26T17:23:34.437 回答