问题描述
我有一个包含多个 .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 (将#修改为@)