Как правильно читать файлы zarr из minio?

Я хочу прочитать большой zarr файл с моего сервера minio(s3), однако после того, как я изменил три метода, все они вышли из строя:

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

Метод 2 — единственный, который должен работать: пожалуйста, покажите, что именно пошло не так.

mdurant 28.02.2024 17:10

Я обновил свой вопрос. «ModuleNotFoundError: нет модуля с именем xarray.core.daskmanager», однако до этого я запускал pip install xarray[complete].

forestbat 29.02.2024 03:54

Пожалуйста, вставьте свое исключение и полную обратную связь в вопрос. Так что к s3fs это не имеет никакого отношения. Пожалуйста, удалите все это и спросите только о xarray-dask.

mdurant 29.02.2024 15:14
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
3
105
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я переделал эту практику на другом компьютере и наконец обнаружил, что эту проблему невозможно воспроизвести. Теперь мне следует закрыть проблему.

Другие вопросы по теме