
octoenergy/pyspark该镜像为PySpark应用程序测试提供专用基础环境,基于Linux发行版构建,预配置PySpark运行时及相关依赖库,集成常用测试工具,旨在解决PySpark应用测试过程中环境不一致、依赖配置复杂等问题,为开发人员和CI/CD流程提供标准化的测试基础。
:3.3.0对应PySpark 3.3.0版本)。pytest、unittest)及PySpark测试辅助库(如pyspark-testing)。coverage.py),支持测试结果量化分析。python:3.9-slim或debian:bullseye-slim)构建,确保跨环境测试行为一致。开发人员可基于此镜像在本地快速搭建PySpark测试环境,验证数据处理逻辑、函数功能及性能瓶颈。
作为CI/CD流程中的测试阶段基础镜像,实现PySpark应用的自动化测试(如GitLab CI、GitHub Actions),确保代码提交前通过测试验证。
通过指定不同PySpark版本标签(如:3.2.0、:3.4.1),测试应用在多版本PySpark下的兼容性。
通过Docker Hub或私有仓库拉取镜像:
bashdocker pull [镜像仓库地址]/pyspark-test-base:[版本标签] # 示例(假设官方标签): # docker pull pyspark-test-base:3.3.0
运行容器并进入交互式环境,挂载本地PySpark代码目录进行测试:
bashdocker run -it --rm \ -v /本地/pyspark代码目录:/app \ -w /app \ pyspark-test-base:3.3.0 \ /bin/bash
进入容器后,可直接使用pytest执行测试:
bashpytest tests/ # 假设测试代码位于/app/tests目录
通过环境变量自定义测试环境,常用变量如下:
| 环境变量名 | 描述 | 默认值 |
|---|---|---|
SPARK_VERSION | 指定PySpark版本(需镜像支持) | 镜像标签对应的版本 |
PYTHONPATH | Python模块搜索路径 | /app:/usr/local/lib/pythonX.X/site-packages |
TEST_REPORT_PATH | 测试报告输出路径 | /app/test-reports |
示例:指定测试报告输出路径
bashdocker run -it --rm \ -v /本地代码:/app \ -e TEST_REPORT_PATH=/app/custom-reports \ pyspark-test-base:3.3.0 \ pytest tests/ --html=$TEST_REPORT_PATH/report.html
在.github/workflows/test.yml中配置:
yamljobs: pyspark-test: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Run PySpark tests uses: docker/run-action@v3 with: image: pyspark-test-base:3.3.0 volumes: - ${{ github.workspace }}:/app workdir: /app env: TEST_REPORT_PATH: /app/test-reports command: pytest tests/ --html=$TEST_REPORT_PATH/report.html
dockerfileFROM pyspark-test-base:3.3.0 RUN pip install pyspark-streaming-test # 安装额外测试库
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务