You need to enable JavaScript to run this app. AWS Glue运行jar生成csv文件无法访问及读取问题咨询
优惠活动
大模型
产品
解决方案
定价
更多

AWS Glue运行jar生成csv文件无法访问及读取问题咨询

问题解答

问题1:配置./filename作为存储路径时的实际存储位置

你配置的相对路径./对应的是AWS Glue作业Driver节点的本地临时文件目录/tmp,也就是说你配置的./filename实际生成路径是/tmp/filename。
需注意:你在Glue作业配置中指定的TempDir是S3存储路径,和这个Driver本地的/tmp目录完全无关,直接读取S3的TempDir路径自然找不到本地生成的文件。

问题2:如何读取该文件生成DynamicFrame

你不需要额外创建EC2实例或EMR集群,按以下步骤操作即可:

  • 第一步:先验证文件是否已生成在本地目录,可在脚本中加入以下代码确认:
import os
print(os.listdir("/tmp")) # 输出/tmp下的所有文件,确认目标filename是否存在
  • 第二步:使用boto3将本地生成的文件上传到你有权限的S3存储桶中,示例代码如下:
import boto3
s3 = boto3.client('s3')
# 替换为你自己的桶名和S3目标存储路径
bucket_name = "your-bucket-name"
s3_target_path = "glue_temp/filename.csv"
# 上传本地/tmp下的文件到S3
s3.upload_file("/tmp/filename", bucket_name, s3_target_path)
  • 第三步:读取S3上的文件生成DynamicFrame,修改原有代码即可:
create_jar_frame = glueContext.create_dynamic_frame.from_options(
    connection_type="s3",
    connection_options = {"paths": [f"s3://{bucket_name}/{s3_target_path}"], "recurse": True},
    format="csv"
)

额外注意事项

  • Glue Driver节点的本地临时磁盘默认有20GB左右的存储空间,如果你的jar生成的文件体积较大,可以给作业配置更高的DPU,或开启弹性磁盘配置避免磁盘不足。
  • 只有当你用UDF把jar调用逻辑分发到Executor执行时,jar才会运行在Executor节点上,此时每个Executor的/tmp目录独立,需要单独处理对应节点的本地文件上传;常规在Glue主脚本中直接调用subprocess都是运行在Driver节点,按上述步骤操作即可。

内容的提问来源于stack exchange,提问作者Elhan Shaji

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 14:54:07