Skip to content

Python 作业

场景 有一段用 Python 写的逻辑(数据清洗、统计计算、调第三方 API、生成报表),比起用 SQL 表达更顺手,想让它按计划跑起来。

能干什么

你想做的事配置成 Python 长这样(示意)
直接写一段内联脚本脚本来源选「内联编辑」,文本框里写 Python
复用已有的脚本文件脚本来源选「资源中心脚本」,运行时自动下载执行

亮点

  • 跟 Shell 作业是同一个执行器父类——只是解释器换成 python3,机制完全一致:脚本经 ConfigMap 挂载进一次性 k8s Job pod 执行,不在平台 JVM 进程内跑。
  • 同样的隔离与生命周期——每空间独立 namespace + ResourceQuota,restartPolicy=NeverbackoffLimit=0,跑完 ttlSecondsAfterFinished=600 自动回收 pod。
  • 标准库开箱即用——镜像自带 Python 3.8,statisticsjsondatetime 等标准库不用额外装;需要三方库(如 pandas)则要在镜像里预置,当前默认镜像是复用 Spark 镜像的瘦身版,不含额外三方包。
  • 脚本体积上限、来源二选一——跟 Shell 作业一样受 ConfigMap/etcd ~1MB 限制(实际 512KB 上限),脚本来源可以是内联文本或资源中心已上传的文件。

完整操作示例:一次真实运行

新建「Python」作业 python_stats_demo,脚本来源用「内联编辑」,跑一段基础统计计算(不依赖任何三方库):

python
import statistics
import platform

print("=== Python 作业演示 ===")
print("Python 版本:", platform.python_version())

data = [12, 7, 19, 4, 25, 13, 8, 30, 5, 21]
print("样本数据:", data)
print("均值 mean =", statistics.mean(data))
print("中位数 median =", statistics.median(data))
print("标准差 stdev =", round(statistics.stdev(data), 4))

保存后点「运行一次」,exit=0,日志里能看到 Python 版本和计算结果:

Python 作业运行成功,日志含统计计算结果

想跑纯 bash 脚本,看Shell 作业;想跑复杂的 Spark 程序,看Spark Jar 作业

看全部作业类型 →