在Databricks中使用R读取Blob存储挂载文件失败,求解决建议
解决Databricks中R语言读取挂载Blob存储文件的路径问题
问题重现
尝试从已挂载到Databricks路径/mnt/home的Blob存储读取哈希文件(确认文件存在),使用R语言执行代码时出现路径错误:
执行代码:
%r install.packages("qs") data <- qs::read("/mnt/home/country/002273b76c24cb37f3c3f1") head(data)
报错信息:
Error in qs::qread("dbfs:/mnt/home/country/002273b76c24cb37f3c3f1") : Failed to open dbfs:/mnt/home/country/002273b76c24cb37f3c3f1. Check file path. Some(<code style = 'font-size:10p'> Error in qs::qread("dbfs:/mnt/home/country/002273b76c24cb37f3c3f1;): Failed to open dbfs:/mnt/home/country/002273b76c24cb37f3c3f1. Check file path. </code>) Error in qs::qread("dbfs:/mnt/home/country/002273b76c24cb37f3c3f1"): Failed to open dbfs:/mnt/home/country/002273b76c24cb37f3c3f1. Check file path.
解决方案
- 修正函数调用笔误:qs包读取文件的正确函数是
qs::qread,而非qs::read,先修正这一基础错误。 - 调整DBFS路径格式:在Databricks的R环境中,访问挂载存储有两种可靠路径写法:
- 使用DBFS前缀路径:
data <- qs::qread("dbfs:/mnt/home/country/002273b76c24cb37f3c3f1") - 使用本地映射路径(Databricks将DBFS挂载到本地
/dbfs目录):data <- qs::qread("/dbfs/mnt/home/country/002273b76c24cb37f3c3f1")
- 使用DBFS前缀路径:
- 验证路径有效性:先执行文件存在性检查,确认路径无误:
返回# 检查DBFS路径 file.exists("dbfs:/mnt/home/country/002273b76c24cb37f3c3f1") # 检查本地映射路径 file.exists("/dbfs/mnt/home/country/002273b76c24cb37f3c3f1")TRUE则路径正常,否则重新确认挂载点和文件位置。 - 检查权限配置:确认Databricks集群拥有该Blob存储的读取权限,比如挂载时使用的存储密钥/SAS令牌是否有效,存储容器的权限设置是否允许访问。
内容的提问来源于stack exchange,提问作者hari_agg
相关产品推荐
相关产品推荐

