温馨提示:本文翻译自stackoverflow.com,查看原文请点击:python 3.x - Read Azure Datalake Gen2 images from Azure Databricks
azure-databricks python-3.x rasterio azure-data-lake-gen2

python 3.x - 从Azure Databricks读取Azure Datalake Gen2图像

发布于 2020-04-18 21:15:21

我正在处理.tif存储在Azure Data Lake Gen2中的文件。想要使用rasterioAzure Databricks 打开此文件

例:

从Data Lake读取图像文件时,spark.read.format("image").load(filepath)效果很好。

在此处输入图片说明

但是尝试打开与

with rasterio.open(filepath) as src:
    print(src.profile)

出现错误:

RasterioIOError: wasbs://xxxxx.blob.core.windows.net/xxxx_2016/xxxx_2016.tif: No such file or directory

任何线索在做什么错了?

更新:

正如Axel R所建议的那样,已在Databricks文件系统上挂载文件,但仍然出现相同的问题,无法从rasterio打开文件,但可以读取为df。

在此处输入图片说明

还尝试通过在Datalake中为文件创建共享访问签名来尝试,并尝试通过URI访问文件。现在在错误下面得到错误:

CURL error: error setting certificate verify locations:   CAfile: /etc/pki/tls/certs/ca-bundle.crt   CApath: none

为了进一步测试,尝试从Web打开一个相同文件@

filepath = 'http://landsat-pds.s3.amazonaws.com/c1/L8/042/034/LC08_L1TP_042034_20170616_20170629_01_T1/LC08_L1TP_042034_20170616_20170629_01_T1_B4.TIF' 工作良好

查看更多

提问者
Sreedhar
被浏览
56
Axel R. 2020-02-05 01:20

我相信这是因为rasterio使用的是Local API,并且只能从以/ dbfs /开头的路径读取。

您是否可以挂载Blob存储?这样一来,您就可以使用rasterio以/ dbfs / mnt /开头的路径访问它