正在处理存储在Azure Data Lake Gen2中的.tif
文件。希望使用Azure Databricks的rasterio
打开此文件。
示例:
当以spark.read.format("image").load(filepath)
的形式从Data Lake读取图像文件时,效果很好。
但尝试与打开相同
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'
工作正常
答案 0 :(得分:0)
我相信这是因为rasterio使用的是本地API,并且只能从以/ dbfs /开头的路径读取。
您是否可以挂载Blob存储?这样一来,您就可以使用rasterio以/ dbfs / mnt /
开头的路径进行访问