zarr-python icon indicating copy to clipboard operation
zarr-python copied to clipboard

read hdfs error

Open showkeyjar opened this issue 3 years ago • 0 comments

Zarr version

v2.13.1

Numcodecs version

v0.10.2

Python Version

3.8.5

Operating System

Linux

Installation

pip install zarr

Description

zarr read hdfs throw error:

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
Input In [7], in <cell line: 1>()
----> 1 list(store.keys())

File ~/anaconda3/envs/rapids/lib/python3.8/_collections_abc.py:702, in MappingView.__len__(self)
    701 def __len__(self):
--> 702     return len(self._mapping)

File ~/anaconda3/envs/rapids/lib/python3.8/site-packages/zarr/hierarchy.py:314, in Group.__len__(self)
    312 def __len__(self):
    313     """Number of members."""
--> 314     return sum(1 for _ in self)

File ~/anaconda3/envs/rapids/lib/python3.8/site-packages/zarr/hierarchy.py:314, in <genexpr>(.0)
    312 def __len__(self):
    313     """Number of members."""
--> 314     return sum(1 for _ in self)

File ~/anaconda3/envs/rapids/lib/python3.8/site-packages/zarr/hierarchy.py:284, in Group.__iter__(self)
    282     for key in sorted(listdir(self._store, self._path)):
    283         path = self._key_prefix + key
--> 284         if (contains_array(self._store, path) or
    285                 contains_group(self._store, path)):
    286             yield key
    287 else:
    288     # TODO: Should this iterate over data folders and/or metadata
    289     #       folders and/or metadata files

File ~/anaconda3/envs/rapids/lib/python3.8/site-packages/zarr/storage.py:107, in contains_array(store, path)
    105 prefix = _path_to_prefix(path)
    106 key = _prefix_to_array_key(store, prefix)
--> 107 return key in store

File ~/anaconda3/envs/rapids/lib/python3.8/_collections_abc.py:666, in Mapping.__contains__(self, key)
    664 def __contains__(self, key):
    665     try:
--> 666         self[key]
    667     except KeyError:
    668         return False

File ~/anaconda3/envs/rapids/lib/python3.8/site-packages/zarr/storage.py:724, in KVStore.__getitem__(self, key)
    723 def __getitem__(self, key):
--> 724     return self._mutable_mapping[key]

File ~/anaconda3/envs/rapids/lib/python3.8/site-packages/hdfs3/mapping.py:57, in HDFSMap.__getitem__(self, key)
     56 def __getitem__(self, key):
---> 57     key = self._key_to_str(key)
     58     try:
     59         with self.hdfs.open(key, 'rb') as f:

File ~/anaconda3/envs/rapids/lib/python3.8/site-packages/hdfs3/mapping.py:53, in HDFSMap._key_to_str(self, key)
     51     key = str(key)
     52 if '/' in key:
---> 53     raise ValueError("Keys containing '/' disallowed: " + key )
     54 return '/'.join([self.root, key])

ValueError: Keys containing '/' disallowed: .zgroup/.zarray

Steps to reproduce

import hdfs3
import zarr

hdfs = hdfs3.HDFileSystem(host='localhost', port=9000)

store = zarr.open(hdfs3.HDFSMap(hdfs, root='/data/', check=False))

list(store.keys())

then it throws error.

Additional output

No response

showkeyjar avatar Sep 27 '22 02:09 showkeyjar