在 dask 延迟的情况下从 s3 加载羽毛文件

问题描述

我有一个包含多个 .feather 文件的 s3 文件夹,我想使用 python 将这些文件加载​​到 dask 中,如下所述:Load many feather files in a folder into dask。我尝试了两种方法都给我不同的错误

import pandas as pd
import dask 

ftr_filenames = [
    's3://my-bucket/my-dir/file_1.ftr','s3://my-bucket/my-dir/file_2.ftr',.
     .
     .
    's3://my-bucket/my-dir/file_30.ftr'
]
delayed_files = dask.bytes.open_files(ftr_filenames,'rb')

# ---------------------------option 1 --------------------------------
dfs = [dask.delayed(pd.read_feather)(f) for f in delayed_files]
# ---------------------------option 2 --------------------------------
dfs = [dask.delayed(feather.read_dataframe)(f) for f in delayed_files]
# --------------------------------------------------------------------

df = dask.dataframe.from_delayed(dfs)

# -------------------------- error 1 ------------------------------
# 'S3File' object has no attribute '__fspath__'
# -------------------------- error 2 ------------------------------
# Cannot convert OpenFile to pyarrow.lib.NativeFile

是否有另一种方法可以从 s3 读取这些文件?这里的主要目的是规避由 pd.concat 引起的内存问题。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)