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

如何使用Python从Azure文件共享获取数据并导入Pandas DataFrame

从Azure文件共享导入CSV至Pandas DataFrame(Databricks环境)

你之前的代码是针对Azure Data Lake Storage Gen2容器的,要访问Azure文件共享,需要调整挂载的源格式和配置参数,以下是具体实现步骤:

1. 挂载Azure文件共享到Databricks文件系统

Azure文件共享的挂载源地址格式与ADLS Gen2不同,需指向file.core.windows.net域名,配置参数也需对应调整:

# 替换为你的存储账户信息
storageAccountName = "你的存储账户名称"
fileShareName = "你的文件共享名称"
storageAccountAccessKey = "你的存储账户访问密钥"

# 执行挂载操作
dbutils.fs.mount(
  source = f"abfss://{fileShareName}@{storageAccountName}.file.core.windows.net",
  mount_point = f"/mnt/{fileShareName}",
  extra_configs = {
    f"fs.azure.account.auth.type.{storageAccountName}.file.core.windows.net": "SharedKey",
    f"fs.azure.account.key.{storageAccountName}.file.core.windows.net": storageAccountAccessKey
  }
)

若提示挂载点已存在,可添加overwrite=True参数覆盖现有挂载。

2. 验证挂载并查看CSV文件

挂载成功后,可通过以下命令查看共享内的CSV文件:

# 列出挂载点下的所有文件
file_list = dbutils.fs.ls(f"/mnt/{fileShareName}")

# 筛选并打印CSV文件路径
for file in file_list:
    if file.name.endswith(".csv"):
        print(f"找到CSV文件:{file.path}")

3. 将CSV导入Pandas DataFrame

由于Pandas无法直接读取Databricks文件系统(DBFS)路径,需将路径转换为本地路径前缀/dbfs/,再进行读取:

单个CSV文件导入

import pandas as pd

# 替换为目标CSV文件的挂载路径
csv_local_path = f"/dbfs/mnt/{fileShareName}/你的文件名.csv"
df = pd.read_csv(csv_local_path)

# 查看数据前几行
print(df.head())

批量导入并合并多个CSV文件

import pandas as pd

dfs = []
for file in file_list:
    if file.name.endswith(".csv"):
        # 转换为本地可访问路径
        local_path = f"/dbfs{file.path}"
        # 读取单个CSV文件
        temp_df = pd.read_csv(local_path)
        dfs.append(temp_df)

# 合并所有DataFrame
combined_df = pd.concat(dfs, ignore_index=True)
print(f"合并后数据总行数:{len(combined_df)}")

4. 可选:不挂载直接访问文件

若无需持久化挂载,可通过配置Spark参数直接读取文件,再转换为Pandas DataFrame:

# 配置存储账户密钥
spark.conf.set(f"fs.azure.account.key.{storageAccountName}.file.core.windows.net", storageAccountAccessKey)

# 使用Spark读取所有CSV文件,再转换为Pandas DataFrame
spark_df = spark.read.csv(
    f"abfss://{fileShareName}@{storageAccountName}.file.core.windows.net/*.csv",
    header=True,  # 若CSV包含表头需设置为True
    inferSchema=True  # 自动推断列类型
)
pandas_df = spark_df.toPandas()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 14:30:49