使用 dask 读取分区数据(镶木地板),其中有"int64"与"int64 not null"



我有这样一个恼人的情况,我的一些拼花文件有:

x: int64

和其他

x: int64 not null

和ergo(在dask 2.8.0/numpy 1.15.1/pandas 0.25.3)我不能运行以下命令:

test: Union[pd.Series, pd.DataFrame, np.ndarray] = dd.read_parquet(input_path).query(filter_string)[input_columns].compute()

有人知道我可以做什么,没有升级dask/numpy(因为我知道最新的dask/numpy似乎工作)?

提前感谢!

如果您知道哪些文件包含不同的dtype,那么最好重新处理它们(加载/转换dtype/保存)。

如果这不是一个选项,那么你可以从延迟对象创建一个任务数据帧,像这样:

import pandas as pd
from dask import delayed
import dask.dataframe as dd
@delayed
def custom_load(fpath):
df = pd.read_parquet(fpath)
df = df.astype({'x': 'Int64'}) # the appropriate dtype
return df
delayed = [custom_load(f) for f in files] # where files is the list of files
ddf = dd.from_delayed(delayed) # can also provide meta option if known

相关内容

  • 没有找到相关文章

最新更新