gpt4 book ai didi

aws-glue - 在 AWS Glue 中读取配置文件

转载 作者:行者123 更新时间:2023-12-05 04:04:18 26 4
gpt4 key购买 nike

在部署到 AWS Glue 之前,我创建了一个 Glue 开发端点来测试我的代码。下面是项目架构的屏幕截图。 Project layout在 gluelibrary/中有 config.ini 我能够成功调试代码并让它运行完成。我在 DEV 环境中调用库的方式如下所示:

开发环境

import sys
import os
import time
from configobj import ConfigObj
from awsglue.transforms import *
from awsglue.utils import getResolvedOptions
from pyspark.context import SparkContext
from awsglue.context import GlueContext
from awsglue.job import Job
import boto3

config = ConfigObj('/home/glue/scripts/gluelibrary/config.ini')

此过程成功找到我在配置文件中定义的所有变量并以“退出代码 0”退出

控制台

注意:我开发的库是 .zipped 并添加到我告诉 Glue Job 寻找 .zip 的 s3 存储桶中。

但是,当我在 Glue 控制台中尝试执行相同的代码(文件路径除外)时,出现错误:

import sys
import os
import time
from configobj import ConfigObj
from awsglue.transforms import *
from awsglue.utils import getResolvedOptions
from pyspark.context import SparkContext
from awsglue.context import GlueContext
from awsglue.job import Job
import boto3

from gluelibrary.helpers import get_date
from gluelibrary import
from gluelibrary.boto3_.s3_utils import delete_data_in_sub_directories, check_for_empty_bucket
from gluelibrary.boto3_.s3_utils import replace_data_in_sub_directories, check_bucket_existence
print('starting job.')

print(os.getcwd())

config = ConfigObj('/home/glue/gluelibrary/config.ini')

--conf spark.hadoop.yarn.resourcemanager.connect.max-wait.ms=60000 --conf spark.hadoop.fs.defaultFS=hdfs://IP_ADDRESS.internal:8020 --conf spark.hadoop.yarn.resourcemanager.address=IP_ADDRESS.internal:8032 --conf spark.dynamicAllocation.enabled=true --conf spark.shuffle.service.enabled=true --conf spark.dynamicAllocation.minExecutors=1 --conf spark.dynamicAllocation.maxExecutors=18 --conf spark.executor.memory=5g --conf spark.executor.cores=4 --JOB_ID j_26c2ab188a2d8b7567006809c549f5894333cd38f191f58ae1f2258475ed03d1 --enable-metrics --extra-py-files s3://BUCKET_NAME/Python/gluelibrary.zip --JOB_RUN_ID jr_0292d34a8b82dad6872f5ee0cae5b3e6d0b1fbc503dca8a62993ea0f3b38a2ae --scriptLocation s3://BUCKET_NAME/admin/JOB_NAME --job-bookmark-option job-bookmark-enable --job-language python --TempDir s3://BUCKET_NAME/admin --JOB_NAME JOB_NAME YARN_RM_DNS=IP_ADDRESS.internal Detected region us-east-2 JOB_NAME = JOB_NAME Specifying us-east-2 while copying script. Completed 6.6 KiB/6.6 KiB (70.9 KiB/s) with 1 file(s) remaining download: s3://BUCKET_NAME/admin/JOB_NAME to ./script_2018-10-12-14-57-20.py SCRIPT_URL = /tmp/g-6cad80fb460992d2c24a6f476b12275d2a9bc164-362894612904031505/script_2018-10-12-14-57-20.py

最佳答案

如果您需要从 Glue 作业中访问额外的文件,您必须:

  1. 将每个文件复制到 S3 上 Glue 有权访问的位置

  2. extra-files 中包含每个文件的完整 S3 key ,以逗号分隔 special parameter你的工作

然后,Glue 会将这些文件添加到 --filesspark-submit 的参数中,您应该能够从您的 Spark 作业中访问它们,就像它们一样在工作目录中。

在您的示例中,您应该能够简单地执行以下操作:

config = ConfigObj("config.ini")

关于aws-glue - 在 AWS Glue 中读取配置文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52783692/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com