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

如何在AWS Glue Python Shell Job中运行PySpark Job以降低成本

在AWS Glue Python Shell Job中运行PySpark以处理小型数据集的可行方案

可行,以下是几种适配小型数据集的实践方案,能帮你借助Glue Python Shell的低配置特性降低成本:

1. 手动打包PySpark依赖并加载到作业

Glue Python Shell默认不预装PySpark环境,你可以自行打包适配版本的PySpark核心依赖(包括pyspark、py4j等)成.zip或.egg包,上传到S3存储桶。然后在Glue作业配置的Python路径中指定该S3包的路径,让作业加载依赖。

核心代码示例

初始化SparkSession时使用本地模式(利用作业分配的本地资源处理数据,无需集群):

from pyspark.sql import SparkSession

# 用local[*]模式最大化利用作业分配的CPU线程
spark = SparkSession.builder.master("local[*]") \
    .appName("SmallDatasetSparkJob") \
    .getOrCreate()

# 读取小型数据集
df = spark.read.csv("s3://your-bucket/small-data.csv", header=True)
# 数据处理逻辑示例
df_filtered = df.filter(df["value"] > 10)
# 输出结果到S3
df_filtered.write.parquet("s3://your-bucket/output/")

spark.stop()

2. 配置最小化资源规格

Glue Python Shell支持低至0.0625个DPU的资源配置(远低于标准Glue Spark Job的最小2个DPU),你可以在作业配置里选择最小资源档位,配合本地模式的PySpark,刚好满足小型数据集的处理需求,大幅压缩计费成本。

3. 关键注意事项

  • 仅适合几GB以内的小型数据集:本地模式Spark无分布式集群能力,数据量过大时会出现内存不足或处理超时问题。
  • 版本兼容性:打包PySpark依赖时,要匹配Glue Python Shell的Python版本(如3.7、3.9),避免版本不兼容引发运行错误。
  • 日志排查:作业失败时优先查看CloudWatch日志,检查依赖加载状态、Spark初始化是否异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 10:15:01