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

如何通过abfss路径读取数据湖文件并解密为Pandas DataFrame?(共享集群)

解决方案:适配ABFSS路径的加密CSV解密方案

因为open仅支持本地文件系统,无法直接读取ABFSS路径的文件,且共享访问模式集群限制了dbutils.fs.cp的使用,推荐使用fsspec库直接流式读取ABFSS路径的文件,无需下载到本地,完美适配你的解密逻辑。

步骤1:安装依赖库

在Databricks笔记本中执行以下命令安装所需库:

%pip install fsspec adlfs

fsspec提供了统一的文件系统接口,adlfs是针对Azure存储(ABFSS)的实现,两者配合可直接操作ABFSS路径。

步骤2:修改解密函数

将原函数中的open替换为fsspec.open,其余解密逻辑保持不变:

import fsspec
import io
import pandas as pd

def decrypt_csv_file_to_pandas(self, source_path, pgp_passphrase, csv_separator):
    """
    Decrypt a csv file directly into a pandas dataframe (supports ABFSS paths).
    """
    # 使用fsspec.open替代原生open,直接读取ABFSS路径文件
    with fsspec.open(source_path, 'rb') as f:
      decrypted = self.gpg.decrypt_file(
        file=f,
        passphrase=pgp_passphrase
      )
      print(decrypted.status)
      df_pd = pd.read_csv(io.StringIO(str(decrypted)), sep=csv_separator, low_memory=False, keep_default_na=False)
      return df_pd 

关键说明

  • fsspec会自动处理Databricks集群与Azure存储的认证(基于集群配置的服务主体或托管身份),无需额外手动配置密钥。
  • 该方案采用流式读取,不会将文件下载到本地节点,完全适配共享访问模式集群的限制。
  • 原有的PGP解密、Pandas读取逻辑无需修改,仅替换文件读取方式即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 15:44:54