我想从我的minio(s3)服务器读取一个大的
zarr
文件,但是,当我改变了三种方法后,它们都崩溃了:
import hydrodata.configs.config as conf
# Method 1
# https://pastebin.com/vkM1M3VV
zarr_path = await conf.FS.open_async('s3://datasets-origin/usgs_streamflow_nldas_hourly.zarr')
zds = xr.open_dataset(zarr_path, engine='zarr')
# Method 2
# https://pastebin.com/fKKECf3U
zarr_path = conf.FS.get_mapper('s3://datasets-origin/usgs_streamflow_nldas_hourly.zarr')
wrapped_store = zarr.storage.KVStore(zarr_path)
zds = xr.open_zarr(wrapped_store)
# Method 3
# AttributeError: __enter__
with conf.FS.open_async('s3://datasets-origin/usgs_streamflow_nldas_hourly.zarr') as zarr_path:
zds = xr.open_dataset(zarr_path)
这是
conf.FS
:
FS = s3fs.S3FileSystem(
client_kwargs={"endpoint_url": MINIO_PARAM["endpoint_url"]},
key=MINIO_PARAM["key"],
secret=MINIO_PARAM["secret"],
use_ssl=False,
)
那么如何解决他们的问题并让我得到正确的数据呢?
————————————————————————————————————
这是我在方法2中的崩溃报告:
name = 'xarray.core.daskmanager'
import_ = <function _gcd_import at 0x7fe2aabbb400>
> ???
E ModuleNotFoundError: No module named 'xarray.core.daskmanager'
但是我之前运行过
pip install xarray[complete]
和conda install -c conda-forge xarray dask netCDF4 bottleneck
,那么问题出在哪里呢?
这是我的点子列表:https://pastebin.com/BUbcNqtT
我在另一台电脑上重做了这个做法,最后发现这个问题无法重现。 现在我应该关闭这个问题了。