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

Azure Databricks无法读取Wheel包内CSV文件的问题求助

解决Azure Databricks中Wheel包内资源文件路径不存在问题

问题核心

自行开发的motor_ingesta Wheel包包含timezones.csv资源文件,本地Jupyter Notebook调用包内agregaciones.py的aniade_hora_utc函数读取文件正常,但部署到Azure Databricks Notebook后触发FileNotFoundError。已尝试pip安装包、重启集群,环境为Python 3.11、PySpark 3.5、Java 8。

可能原因与解决方案

1. Wheel包未正确打包资源文件

本地开发时能通过相对路径读取文件,但如果setup.py未配置资源打包规则,Wheel包可能未包含timezones.csv,导致Databricks安装后文件缺失。

解决方法:修改setup.py,确保资源文件被打包进Wheel:

from setuptools import setup, find_packages

setup(
    name="motor_ingesta",
    version="0.1",
    packages=find_packages(),
    # 配置包内资源文件
    package_data={
        "motor_ingesta": ["timezones.csv"]  # 替换为你的包名和文件实际路径
    },
    include_package_data=True,
)

重新打包Wheel:

python setup.py bdist_wheel

2. 代码中使用了错误的文件路径获取方式

本地环境的相对路径在Databricks集群中无效,集群的工作目录、包安装路径与本地差异极大,硬编码相对路径必然失败。

解决方法:使用Python标准库获取包内资源的绝对路径,修改agregaciones.py中的文件读取逻辑:

方法一:使用importlib.resources(Python 3.7+推荐)

import importlib.resources
import pandas as pd  # 或你用来读取CSV的库

def aniade_hora_utc():
    # 获取包内资源文件的绝对路径
    with importlib.resources.path("motor_ingesta", "timezones.csv") as csv_path:
        df = pd.read_csv(csv_path)
        # 后续业务逻辑

方法二:使用pkg_resources(兼容旧版本)

import pkg_resources
import pandas as pd

def aniade_hora_utc():
    csv_path = pkg_resources.resource_filename("motor_ingesta", "timezones.csv")
    df = pd.read_csv(csv_path)
    # 后续业务逻辑

3. 验证Databricks中包的安装状态

确认Wheel包在Databricks集群中正确安装且包含目标文件:

  1. 在Notebook中执行以下命令查看包安装路径:
import motor_ingesta
print(motor_ingesta.__file__)
  1. 根据输出的路径,查看是否存在timezones.csv:
%sh ls -l /dbfs/FileStore/python/motor_ingesta/  # 替换为实际安装路径

如果文件不存在,重新用%pip install /dbfs/FileStore/path/to/motor_ingesta.whl安装(确保Wheel包已上传到DBFS)。

4. 排查Databricks集群的Python环境一致性

确保集群使用的Python版本与本地一致(Python 3.11):

  • 查看集群配置中的"Runtime version",选择包含Python 3.11的Databricks Runtime(如13.3 LTS及以上版本支持Python 3.11)。
  • 安装包时指定与集群Python匹配的Wheel,避免跨版本打包导致的路径问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 02:33:16