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

Dataproc提交PySpark任务:如何访问zip包内的YAML配置文件

解决方案

不需要手动解压整个zip包,有两种更优的处理方式,根据你的需求选择:

方式一:直接读取zip包内的YAML文件(推荐)

利用Python的zipfile模块,可以直接读取zip包内的文件内容,无需解压整个包,节省磁盘空间和IO开销。示例代码如下:

import zipfile
import yaml

# 读取zip包内的YAML文件
with zipfile.ZipFile('app_code_v2.zip', 'r') as zip_ref:
    # 假设YAML文件在zip包根目录下,名为config.yaml
    with zip_ref.open('config.yaml') as yaml_file:
        config = yaml.safe_load(yaml_file)
        # 后续使用config即可
        print(config)

如果YAML文件在zip包的子目录里(比如configs/config.yaml),把路径改成对应子路径即可。

方式二:按需解压指定文件或整个包

如果需要频繁访问zip内的多个文件,或者需要让其他非Python程序访问这些文件,可以选择解压。无需手动操作,在main.py里添加解压逻辑即可:

import zipfile
import os

zip_path = 'app_code_v2.zip'
extract_dir = './app_code'

# 避免重复解压
if not os.path.exists(extract_dir):
    with zipfile.ZipFile(zip_path, 'r') as zip_ref:
        zip_ref.extractall(extract_dir)

# 之后就可以直接访问解压后的YAML文件
with open(f'{extract_dir}/config.yaml', 'r') as f:
    config = yaml.safe_load(f)

注意:--files参数会把zip包分发到集群每个节点的工作目录,所以这个解压逻辑会在每个执行任务的节点上自动执行,确保所有节点都能访问到配置文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 20:09:22