You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:在Databricks中通过ADLS Gen2的CSV特定列创建文件夹

Databricks读取ADLS Gen2 CSV特定列并创建对应文件夹的Python实现

问题背景

已通过账户密钥/SAS令牌完成ADLS Gen2到Databricks的挂载(挂载代码:dbutils.fs.mount( source = 'path', mount_point = '/mnt/...', extra_configs = {path,accountkey})),可正常读取CSV文件,但无法通过挂载点创建文件夹,需实现以下功能:

  • 读取ADLS Gen2中CSV文件的指定列
  • 根据列中唯一值在ADLS Gen2对应路径创建文件夹

解决方案代码

1. 验证挂载点可用性

先确认挂载路径可正常访问:

# 列出挂载点下的内容,验证挂载状态
dbutils.fs.ls("/mnt/your_mount_point")

2. 读取CSV文件的特定列

假设需提取的列名为folder_name,读取并去重:

# 读取CSV文件,指定表头和自动推断Schema
df = spark.read.csv(
    "/mnt/your_mount_point/path/to/target_file.csv",
    header=True,
    inferSchema=True
)

# 选择目标列并去重,避免重复创建文件夹
unique_folder_list = df.select("folder_name").distinct().collect()

3. 遍历创建文件夹

使用dbutils.fs.mkdirs创建文件夹(该方法会自动创建父目录,已存在时不会抛出异常):

# 定义文件夹的父路径(挂载点下的目标根目录)
parent_folder_path = "/mnt/your_mount_point/your_target_root/"

# 遍历唯一文件夹名称,逐个创建
for row in unique_folder_list:
    folder_name = row.folder_name
    full_path = f"{parent_folder_path}{folder_name}"
    # 创建文件夹
    dbutils.fs.mkdirs(full_path)
    print(f"文件夹创建完成:{full_path}")

常见问题排查

  • 确认挂载时使用的账户密钥/SAS令牌拥有写入权限:若使用服务 principal,需分配Storage Blob Data Contributor角色;若使用SAS令牌,需包含Create权限
  • 检查挂载点路径、CSV文件路径、目标文件夹路径的拼写是否正确
  • 若列值包含特殊字符,需提前处理(比如替换/等路径非法字符)

内容的提问来源于stack exchange,提问作者shruti thakar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 13:10:43