Azure / Azure/MachineLearningNotebooks
`azureml-fsspec` file upload uninformative error
- 主要言語
- Jupyter Notebook
- スター
- 4.4k
- フォーク
- 2.6k
- PR マージ指標
- 30日以内にマージされた PR はありません
説明
Hey, I am working on some simple EDA in AzureML, and I have successfully set up data asset to facilitate access to blob storage. Following [this documentation](https://learn.microsoft.com/en-us/azure/machine-learning/how-to-access-data-interactive?view=azureml-api-2&tabs=adls#access-data-from-a-datastore-uri-like-a-filesystem), I can easily read data using a number of methods, including creating an `AzureMachineLearningFileSystem` and using it to `.open()` some remote file. However, when I try uploading a file back to blob storage using an instance of `AzureMachineLearningFileSystem` and its `.upload()` method, it just fails with an error message mentioning the remote path I pass to it.
So, given a file system `fs`, local file `local.file.txt`, which I want to upload as `remote.file.txt`, I run the following (based on the sample [here](https://learn.microsoft.com/en-us/azure/machine-learning/how-to-access-data-interactive?view=azureml-api-2&tabs=adls#upload-files-via-azuremachinelearningfilesystem)):
```python
fs.upload(lpath='local.file.txt', rpath='remote.file.txt', recursive=False, **{'overwrite': 'MERGE_WITH_OVERWRITE'})
```
But it results in an error with a lengthy stack trace, ending with:
```
File /anaconda/envs/azureml_py310_sdkv2/lib/python3.10/site-packages/azureml/fsspec/spec.py:146, in AzureMachineLearningFileSystem._info(self, path)
144 if len(self._stream_infos) == 1:
145 return list(self._stream_infos.values())[0]['info']
--> 146 return self._stream_infos[path]['info']
KeyError: 'remote.file.txt'
```
which is not really helpful. Any advice on how to debug this issue?
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
調査の方向性
示されているローカルパスとリモートパスを使って、ドキュメントに記載された AzureMachineLearningFileSystem.upload の例を再現します。azureml/fsspec/spec.py:146 から始め、upload と _info のエントリポイントを追跡して、リモートパスが _stream_infos に存在しない理由を特定します。失敗の原因が実行可能な診断情報とともに説明されるか、生の KeyError ではなく情報量のあるエラーが生成されれば完了です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- azure, python
- 領域
- cloud, machine-learning
- issue の種類
- バグ
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 停滞
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 25/100