繁体   English   中英

如何使用 Azure Synapse 和 pySpark 笔记本从 ADLS gen2 检索 .dcm 图像文件?

[英]How to retrieve .dcm image files from the ADLS gen2 using Azure Synapse and pySpark notebook?

我想访问存储在 ADLS gen2 上容器中的 .dcm (dicom) 类型的文件,该文件位于 azure 突触分析的 pyspark 笔记本中。 我正在使用 pydicom 访问文件,但获取并错误该文件不存在。 请看下面的代码,

要创建我使用路径库的文件路径:

Path(path_to_dicoms_dir).joinpath('stage_2_train_images/%s.dcm' % pid)

其中 pid 是 dcm 图像的 id。

要获取 dcm 图像,我使用以下方式。

d = pydicom.read_file(data['dicom']) 
OR
d = pydicom.dcmread(data['dicom'])  

其中 data['dicom'] 是路径。

我已经检查了路径,它没有问题,文件存在并且所有访问权限都在那里,因为我正在访问这些 dcm 文件所在目录正上方的目录中的其他文件。 但其他文件是 csv 而不是 dcm

错误:

FileNotFoundError:[Errno 2] 没有这样的文件或目录:'abfss:/@.dfs.core.windows.net//stage_2_train_images/stage_2_train_images/003d8fa0-6bf1-40ed-b54c-ac657f8495c5.dcm'

我心中的问题:

  • 这是此类图像数据的正确存储解决方案吗?如果不是,我应该使用博客存储吗?
  • pydicom 库是否存在问题,我缺少一些设置来告诉 pydicom 这是一个 ADLS 链接。
  • 还是我应该完全改变方法并使用数据块来运行我的笔记本?
  • 或者有人可以帮我解决问题吗?

这是此类图像数据的正确存储解决方案吗?如果不是,我应该使用博客存储吗?

ADLS Gen2 存储帐户与 Synapse 完美配合,因此无需使用 Blob 存储。

pydicom似乎没有正确选择路径。

您需要在 synapse 中mount ADLS Gen2 帐户,以便pydicom将路径视为附加硬盘驱动器,而不是在获取 URL 时。

按照本教程给我的微软如何安装 Gen2/blob 存储来做同样的事情。

您需要首先在 Synapse 中创建一个Linked Service ,该服务将存储您的 ADLS Gen2 帐户连接详细信息 稍后在笔记本中使用以下代码安装存储帐户:

mssparkutils.fs.mount( 
    "abfss://mycontainer@<accountname>.dfs.core.windows.net", 
    "/test", 
    {"linkedService":"mygen2account"} 
)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM