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

使用Pandas的to_parquet报FileNotFoundError,PySpark却可正常读写?

问题:PySpark可正常读写Azure存储Parquet,但Pandas to_parquet触发FileNotFoundError

在Azure Synapse Notebook的PySpark环境中,以下代码能正常读写Azure存储账户中的Parquet文件:

SourceFileName = "2023-05-26-14-17-11-821-object.parquet"
TestFileName = "Test"
AzureBlobStorageAccountName = "redacted"

SourceFilePath = f'abfss://datalake@' + AzureBlobStorageAccountName + '.dfs.core.windows.net/Bronze/ServiceBus/Object/' + SourceFileName

dfBronze = spark.read.load(SourceFilePath, format='parquet').cache()

dfBronze.createOrReplaceTempView("Bronze")

dfSilver = spark.read.load('abfss://datalake@' + AzureBlobStorageAccountName + '.dfs.core.windows.net/Silver/ServiceBus/Object/*.parquet', format='parquet').cache()

dfSilver.createOrReplaceTempView("Silver") #<-- 成功将DataFrame写入Azure存储账户

但使用Pandas调用to_parquet时触发FileNotFoundError:

import pandas as pd

dict = pd.DataFrame({
    "ObjectId": 45,
    "AdditionalSpecialties": [
        { "SpecialtyId": "38",
          "Specialty": "Family" }
    ]
},{
    "ObjectId": 185,
    "AdditionalSpecialties": [
        { "SpecialtyId": "498",
          "Specialty": "Pandas" },
        { "SpecialtyId": "502",
          "Specialty": "Are Cute" }
    ]
})

df = pd.DataFrame(dict)

TestFilePath = f'abfss://datalake@' + AzureBlobStorageAccountName + '.dfs.core.windows.net/Bronze/ServiceBus/Object/' + TestFileName

print(df)

df.to_parquet(TestFilePath) #<-- 此处报错,无法写入Pandas DataFrame到Azure存储账户

差异原因

  • 协议支持差异:PySpark在Azure Synapse环境中已内置对abfss协议的支持,Synapse会自动处理存储账户的身份验证(比如托管身份、预配置的存储密钥),无需额外配置就能识别并访问Azure存储资源。
  • Pandas依赖缺失:Pandas本身不原生支持abfss协议,要读写Azure存储的Parquet文件,必须额外安装adlfs这类适配Azure存储的驱动库。没有驱动的话,Pandas会把abfss路径当成本地文件路径,自然找不到对应资源,触发FileNotFoundError。
  • 身份验证配置差异:就算安装了驱动,Pandas也需要手动配置Azure存储的身份验证信息(存储密钥、SAS令牌等),而PySpark在Synapse中直接继承了工作区的身份配置,无需手动设置。

另外注意:你提供的Pandas代码中,创建DataFrame的语法存在错误(字典定义缺少逗号、嵌套格式不符合要求),但这不是触发FileNotFoundError的原因,只是代码本身的语法问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 11:12:43