tencent cloud

数据湖计算

产品动态
产品简介
产品概述
产品优势
应用场景
购买指南
计费概述
退费说明
欠费说明
调整配置费用说明
快速入门
新用户开通全流程
DLC 数据导入指引
一分钟入门 DLC 数据分析
一分钟入门 DLC 权限管理
一分钟入门分区表
开启数据优化
跨源分析 EMR Hive 数据
标准引擎配置指引
配置数据访问策略
操作指南
控制台操作介绍
开发指南
运行环境
SparkJar 作业开发指南
PySpark 作业开发指南
查询性能优化指南
UDF 函数开发指南
系统约束
客户端访问
JDBC 访问
TDLC 命令行工具访问
第三方软件联动
Python 访问
实践教程
通过 Power BI 访问 DLC 数据操作指南
建表实践
使用 Apache Airflow 调度 DLC 引擎提交任务
StarRocks 直接查询 DLC 内部存储
Spark 计算成本优化实践
DATA + AI
使用 DLC 分析 CLS 日志
使用角色 SSO 访问 DLC
资源级鉴权指南
在 DLC 中实现 TCHouse-D 读写操作
DLC 原生表
SQL 语法
SuperSQL 语法
标准 Spark 语法概览
标准 Presto 语法概览
保留字
API 文档
History
Introduction
API Category
Making API Requests
Data Table APIs
Task APIs
Metadata APIs
Service Configuration APIs
Permission Management APIs
Database APIs
Data Source Connection APIs
Data Optimization APIs
Data Engine APIs
Resource Group for the Standard Engine APIs
Data Types
Error Codes
通用类参考
错误码
配额与限制
第三方软件连接DLC操作指南
常见问题
权限类常见问题
引擎类常见问题
功能类常见问题
Spark 作业类常见问题
DLC 政策
隐私协议
数据处理和安全协议
服务等级协议
联系我们

PySpark 依赖包管理

PDF
聚焦模式
字号
最后更新时间: 2024-09-18 18:00:04
目前 DLC 的 PySpark 基础运行环境使用 Python=3.9.2。
Spark 作业 Python 依赖可以使用如下两种方式:
1. 通过 --py-files 指定依赖模块、文件。
2. 通过--archives 指定虚拟环境。
如果您的模块或文件使用纯 Python 实现 ,则推荐通过--py-files的方式指定。
通过 --archives 的方式可以直接打包使用整个开发测试环境,这种方式支持编译安装 C 相关的依赖,推荐依赖环境较为复杂时使用。
说明:
上述两种方式可以根据您的需求同时使用。

使用--py-files依赖包

该方式适用于纯 Python 实现的模块或文件,其中未包含任何 C 依赖。

步骤一:打包模块/文件

PyPI 外部包,需要在本地环境中,使用 pip 指令安装并打包常用依赖,要求依赖包使用纯 Python 实现,不依赖 C 相关库。
pip install -i https://mirrors.tencent.com/pypi/simple/ <packages...>  -t dep

cd dep

zip -r ../dep.zip .
单文件模块(funtions.py)和自定义 Python 模块都可以通过上述方法打包,需要注意的是自定义 Python 模块需要按照 Python 官方要求标准化,详情可参考Python 官方文档Python Packaging User Guide

步骤二:引入打包好的模块

数据湖 DLC 控制台 的数据作业模块中新建作业。在--py-files参数中引入打包好的 dep.zip 文件,该可以通过上传到 COS 或者本地上传的方式引入。



使用虚拟环境

虚拟环境可解决部分 Python 依赖包对 C 的依赖问题。用户可根据需要,将依赖包编译安装进虚拟环境,然后将整个虚拟环境上传。 因为 C 相关的依赖涉及到编译安装,所以建议使用 x86架构的机器、Debian 11(bullseye) 系统、Python = 3.9.2 环境进行打包。

步骤一:打包虚拟环境

打包虚拟环境有两种方式,使用 Venv 打包和使用 Conda 打包。
1. 使用 Venv 打包。
python3 -m venv pyvenv

source pyvenv/bin/activate

(pyvenv)> pip3 install -i [https://mirrors.tencent.com/pypi/simple/](https://mirrors.tencent.com/pypi/simple/) packages

(pyvenv)> deactivate

tar czvf pyvenv.tar.gz pyvenv/
2. 使用 Conda 打包。
conda create -y -n pyspark_env conda-pack <packages...> python=<3.9.x>
conda activate pyspark_env
conda pack -f -o pyspark_env.tar.gz
打包完毕后,将打包好的虚拟环境包pyvenv.tar.gz 上传到 cos 中。
注意:
请使用 tar 命令打包。
3. 使用打包脚本
使用打包脚本,您需要安装docker 环境, 目前支持 Linux / mac 环境。
bash pyspark_env_builder.sh -h
Usage:

pyspark-env-builder.sh [-r] [-n] [-o] [-h]
-r ARG, the requirements for python dependency.
-n ARG, the name for the virtual environment.
-o ARG, the output directory. [default:current directory]
-h, print the help info.
参数
描述
-r
指定 requirements.txt 位置
-n
指定虚拟环境名称,默认 py3env
-o
指定虚拟环境保存本地目录,默认当前目录
-h
打印 help 信息
# requirement.txt
requests

# 执行如下命令
bash pyspark_env_builder.sh -r requirement.txt -n py3env
等待脚本运行完成后,您可以在当前目录获取到 py3env.tar.gz,然后将该文上传到 cos。

步骤二:指定虚拟环境

数据湖 DLC 控制台 的数据作业模块中新建作业,参考如下截图操作。
1. --archives 参数填入虚拟环境的完整路径, #号后面为解压文件夹名称。

注意:
“#”号用于指定解压目录。解压目录影响后续运行环境参数配置。
2. --config 参数中指定运行环境参数。

使用 Venv 打包方式请配置:spark.pyspark.python = venv/pyspark_venv/bin/python3
使用 Conda 打包方式请配置:spark.pyspark.python = venv/bin/python3
使用脚本打包方式请配置:spark.pyspark.python = venv/bin/python3
说明:
venv 和 conda 因打包方式不同,目录层级不同,具体可解压 .tar.gz 查看 python 文件相对路径。


帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈