如何从Databricks DBFS路径获取对应的S3存储路径?
从DBFS路径映射到S3路径的可行方法
方法1:使用Databricks CLI的dbfs ls命令(带--absolute参数)
通过Databricks CLI执行以下命令,可直接获取DBFS路径对应的底层S3绝对路径:
databricks dbfs ls --absolute dbfs:/user/hive/warehouse/default.db/students
执行后会返回类似s3://data-lake-bucket-xyz/...的完整S3路径。
方法2:在Databricks Notebook中通过dbutils解析
在Python Notebook中,可调用dbutils.fs.ls获取路径元数据,从中提取完整S3地址:
def get_s3_path(dbfs_path): # 统一路径格式 if not dbfs_path.startswith('dbfs:/'): dbfs_path = f'dbfs:/{dbfs_path.lstrip("/")}' # 获取路径详情 path_info = dbutils.fs.ls(dbfs_path)[0] # 返回对应的S3路径 return path_info.path # 示例调用 print(get_s3_path('dbfs:/user/hive/warehouse/default.db/students'))
注:若目标路径是目录,dbutils.fs.ls会返回目录内文件列表;如需获取目录本身的S3路径,可先通过dbutils.fs.head触发元数据加载,再解析结果。
方法3:手动匹配DBFS挂载规则
先通过CLI查看DBFS挂载映射关系:
databricks mounts list
会得到类似dbfs:/user/hive/warehouse -> s3://data-lake-bucket-xyz/hive/warehouse的配置信息,之后将DBFS路径的挂载前缀替换为对应的S3前缀,即可拼接出完整S3路径。
内容的提问来源于stack exchange,提问作者soumya-kole
相关产品推荐
相关产品推荐

