Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

fsspec integration fails to read Azure directory dataset

Aperta
#413 6 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
38/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
azure, python
Ambito
cloud, data

Direzione di ricerca

Riproduci il malfunzionamento con obstore.fsspec.FsspecStore sulla directory abfs://items/landsat-c2-l2.parquet, quindi confrontane il comportamento con fsspec nativo e adlfs. Usa fs.info() e pyarrow.dataset.dataset() come verifiche; il lavoro è completato quando il filesystem obstore riconosce il percorso come una directory e riesce ad aprire il Dataset partizionato.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

fsspec
Problem:

Attempts to read the dataset using pyarrow.dataset.dataset(path, filesystem=obstore_fs) consistently fail. Debugging revealed that the underlying obstore.fsspec.FsspecStore instance (obstore_fs) fails to access the target path, even for simple operations like obstore_fs.info(path), typically raising a FileNotFoundError.

Context:
  • STAC Collection: landsat-c2-l2 on Planetary Computer STAC (https://planetarycomputer.microsoft.com/api/stac/v1/)
  • STAC Asset: geoparquet-items
  • Asset Details:
    • href: abfs://items/landsat-c2-l2.parquet
    • table:storage_options: {'account_name': 'pcstacitems'}
  • Target Path Type: The path abfs://items/landsat-c2-l2.parquet points to a directory containing the partitioned Parquet dataset, not a single file.
Steps Taken & Findings:
  1. Retrieved STAC asset using pystac-client.
  2. Initialized obstore.auth.planetary_computer.PlanetaryComputerCredentialProvider correctly using url=asset.href and account_name='pcstacitems'.
  3. Attempted to initialize obstore.fsspec.FsspecStore with various configurations:
    • Using protocol='abfs' and the credential provider.
    • Using protocol='https' (with a constructed HTTPS URL) and the provider.
    • Explicitly passing config={'account_name': 'pcstacitems', 'container_name': 'items'} along with the provider for both abfs and https protocols.
  4. In all obstore.fsspec configurations, attempts to access the path (e.g., abfs://items/landsat-c2-l2.parquet) via fs.info() failed with FileNotFoundError (referencing either landsat-c2-l2.parquet or items/landsat-c2-l2.parquet). fs.info() works for files but seems to fail for directories in this setup.
  5. Consequently, pyarrow.dataset.dataset(path, filesystem=obstore_fs) also failed, presumably because it couldn't access/list the directory contents via the obstore fsspec layer.
  6. Successful Native fsspec Test: A separate test using native fsspec and adlfs was performed:
    • Obtained the SAS token directly by calling the initialized PlanetaryComputerCredentialProvider instance.
    • Created a native filesystem: native_fs = fsspec.filesystem("abfs", account_name='pcstacitems', sas_token=...).
    • Accessed the directory info using the relative path: native_fs.info('items/landsat-c2-l2.parquet'). This succeeded and correctly identified the path as a directory.
    • Opened the dataset using pyarrow.dataset.dataset('items/landsat-c2-l2.parquet', filesystem=native_fs). This also succeeded.
Lingua principale
Python
Stelle
830
Fork
45
Merge medio
5h 44m
PR unite (30g)
14

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di developmentseed/obstore

Tutte le issue di developmentseed/obstore

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.