本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon Glue 作业参数
创建Amazon Glue 任务时,需要设置一些标准字段,例如Role
和WorkerType
。您可以通过Argument
字段(控制台中的 Job 参数)提供其他配置信息。在这些字段中Amazon Glue 可以使用本主题中列出的参数。有关Amazon Glue Job API API API API 的更多信息,请参阅任务。
设置作业参数。
您可以在控制台的 Job details(作业详细信息)选项卡的 Job Parameters(作业参数)标题下配置作业。还可以设置作业上的 DefaultArguments
或 NonOverridableArguments
或作业运行上的 Arguments
,通过 Amazon CLI 配置作业。每次运行作业时都会传入在作业上设置的参数,而在作业运行中设置的参数只会传入该单次运行。
例如,以下是运行任务--arguments
的语法,
$ aws glue start-job-run --job-name "CSV to CSV" --arguments='--scriptLocation="s3://my_glue/libraries/test_lib.py"'
访问作业参数。
编写Amazon Glue 脚本时,您可能需要访问作业参数值来更改自己代码的行为。我们在库中提供帮助方法来做到这一点。这些方法解析覆盖作业参数值的作业运行参数值。解析在多个位置设置的参数时,作业NonOverridableArguments
将覆盖作业运行Arguments
,这将覆盖作业DefaultArguments
。
在 Python 中
在 Python 作业中,我们提供了一个名为的函数getResolvedParameters
。有关更多信息,请参阅使用 getResolvedOptions 访问参数:sys.argv
变量中提供了Job 参数。
在 Scala 中:
在 Scala 任务中,我们提供了一个名为的对象GlueArgParser
。有关更多信息,请参阅Amazon GlueScala GlueArgParser API:sysArgs
变量中提供了Job 参数。
Job 参数参考。
Amazon Glue可识别以下参数名称,这些参数名称可用于设置作业和作业运行的脚本环境:
--additional-python-modules
-
以逗号分隔的列表,表示要安装的一组 Python 包。您可以从 PyPI 安装包,也可以提供自定义分发。PyPI 包条目的格式为
,带有目标包的 PyPI 名称和版本。自定义分发条目是到分发的 S3 路径。package
==version
条目使用 Python 版本匹配以匹配包和版本。这意味着您需要使用两个等号,例如
==
。还有其他版本匹配运算符,有关更多信息,请参阅 PEP 440。 要将模块安装选项传递给
pip3
,请使用 --python-modules-installer-option 参数。 --class
-
用作 Scala 脚本之入口点的 Scala 类。仅在
--job-language
设置为scala
时适用。 --continuous-log-conversionPattern
-
为已启用连续日志记录的作业指定自定义转换日志模式。转换模式仅适用于驱动程序日志和执行程序日志。它不会影响 Amazon Glue 进度条。
--continuous-log-logGroup
-
为已启用连续 CloudWatch 日志记录的作业指定自定义 Amazon 日志组名称。
--continuous-log-logStreamPrefix
-
为已启用连续 CloudWatch 日志记录的作业指定自定义日志模式。
--datalake-formats
-
Amazon Glue 3.0 及更高版本支持
指定要使用的数据湖框架。AmazonGlue 会将您指定的框架所需的 JAR 文件添加到
classpath
中。有关更多信息,请参阅在 Amazon Glue ETL 任务中使用数据湖框架:您可以指定以下一个或多个值,用逗号分隔:
-
hudi
-
delta
-
iceberg
例如,传递以下参数以指定所有三个框架。
'--datalake-formats': 'hudi,delta,iceberg'
-
--disable-proxy-v2
-
禁用服务代理,以允许Amazon通过 VPC 从您的脚本发起对 Amazon S3 CloudWatch、和Amazon Glue发起对 Amazon S3、CloudWatch 和发起 有关更多信息,请参阅将 Amazon 调用配置为通过您的 VPC。要禁用服务代理,请将此参数的值设置为
true
。 --enable-auto-scaling
-
此值设置为
true
时,将打开自动扩缩和按工件计费的功能。 --enable-continuous-cloudwatch-log
-
允许对 Amazon Glue 作业进行实时的连续日志记录。您可以查看 CloudWatch 中的实时 Apache Spark 作业日志。
--enable-continuous-log-filter
-
在创建或编辑为连续日志记录启用的作业时,指定标准筛选器 (
true
) 或无筛选器 (false
)。选择标准筛选器可筛选掉无用的 Apache Spark 驱动程序/执行程序和 Apache Hadoop YARN 检测信号日志消息。选择无筛选器可提供所有日志消息。 --enable-glue-datacatalog
-
支持您将 Amazon Glue Data Catalog 用作 Apache Spark Hive 元存储。要启用此功能,请将值设置为
true
。 --enable-job-insights
-
启用通过 Amazon Glue 作业运行洞察进行额外的错误分析监控。有关详细信息,请参阅通过 Amazon Glue 任务运行洞察进行监控。默认情况下,该值将设置为
true
,并将启用任务运行洞察。此选项仅可用于 Amazon Glue 版本 2.0 和 3.0。
--enable-metrics
-
为此作业运行启用作业分析指标的集合。这些指标可用于设置和Amazon CloudWatch 控制台。Amazon Glue要启用此功能,请将值设置为
true
。 --enable-rename-algorithm-v2
-
将 EMRFS 重命名算法版本设置为版本 2。当 Spark 任务使用动态分区覆盖模式时,可能会创建重复分区。例如,您最终可以得到
s3://bucket/table/location/p1=1/p1=1
之类的重复分区。在此处,P1 是被覆盖的分区。重命名算法版本 2 可以解决此问题。此选项仅适用于 Amazon Glue 版本 1.0。
--enable-s3-parquet-optimized-committer
-
启用经 EMRFS S3 优化的提交程序,用于将 Parquet 数据写入 Amazon S3。您可以在创建或更新 Amazon Glue 作业时通过 Amazon Glue 控制台提供参数/值对。将值设置为
true
将启用提交程序。默认情况下,该标志在 Amazon Glue 3.0 中处于打开状态,在 Amazon Glue 2.0 中处于关闭状态。有关更多信息,请参阅使用经 EMRFS S3 优化的提交程序。
--enable-spark-ui
-
当设置为
true
时,打开该功能以使用 Spark UI 监控和调试 Amazon Glue ETL 任务。 --extra-files
-
在执行脚本之前 Amazon Glue 复制到脚本工作目录中的其他文件(如配置文件)的 Amazon S3 路径。多个值必须是以逗号(
,
)分隔的完整路径。仅支持单个文件而不是目录路径。Python 命令行管理程序任务类型不支持此选项。 --extra-jars
-
在执行脚本之前 Amazon Glue 添加到 Java
.jar
路径中的其他 Java 文件的 Amazon S3 路径。多个值必须是以逗号(,
)分隔的完整路径。 --extra-py-files
-
在执行脚本之前 Amazon Glue 添加到 Python 路径中的其他 Python 模块的 Amazon S3 路径。多个值必须是以逗号(
,
)分隔的完整路径。仅支持单个文件而不是目录路径。 --job-bookmark-option
-
控制作业书签的行为。可以设置以下选项值。
‑‑job‑bookmark‑option 值 描述 job-bookmark-enable
追踪以前处理数据。当作业运行时,处理自上一个检查点以来的新数据。 job-bookmark-disable
始终处理整个数据集。您负责管理上一个作业运行的输出。 job-bookmark-pause
处理上次成功运行以来的增量数据或以下子选项标识的范围内的数据,但不更新最后一个书签的状态。您负责管理上一个作业运行的输出。这两个子选项的说明如下: -
job-bookmark-from
<from-value>
是运行 ID,它表示在最后一次成功运行之前所处理的所有输入,包括指定的运行 ID。对应的输入将被忽略。 -
job-bookmark-to
<to-value>
是运行 ID,它表示在最后一次成功运行之前所处理的所有输入,包括指定的运行 ID。作业会处理对应的输入(不包括由<from-value>
标识的输入)。任何晚于此输入的输入也会被排除在外,不进行处理。
指定此选项集时,作业书签状态不更新。
子选项是可选的。但是,在使用时,必须提供两个子选项。
例如,要启用作业书签,请传递以下参数。
'--job-bookmark-option': 'job-bookmark-enable'
-
--job-language
-
脚本编程语言。此值必须为
scala
或python
。如果此参数不存在,默认值为python
。 --python-modules-installer-option
-
纯文本字符串,它定义了在使用 --additional-python-modules 安装模块时要传递给
pip3
的选项。像在命令行中一样提供选项,用空格分隔这些选项并以短划线作为前缀。有关使用情况的更多信息,请参阅 使用 pip 在 Amazon Glue 2.0+ 中安装其他 Python 模块。注意
当使用 Python 3.9 时,Amazon Glue 作业不支持此选项。
--scriptLocation
-
ETL 脚本所在的 Amazon Simple Storage Service(Amazon S3)位置(采用格式
s3://path/to/my/script.py
)。此参数会覆盖JobCommand
对象中设置的脚本位置。 --spark-event-logs-path
-
指定 Amazon S3 路径。使用 Spark UI 监控功能时,Amazon Glue 会每 30 秒刷新 Spark 事件日志到 Amazon S3 路径的存储桶,该存储桶可用作存储 Spark UI 事件的临时目录。
--TempDir
-
指定可用作任务的临时目录的存储桶的 Amazon S3 路径。
例如,要设置临时目录,请传递以下参数。
'--TempDir': '
s3-path-to-directory
'注意
如果区域中尚不存在存储桶,则 Amazon Glue 会为任务创建临时存储桶。此存储桶可能允许公开访问。您可以修改 Amazon S3 中的存储桶以设置公开访问数据块,也可以在该区域中的所有任务完成之后删除存储桶。
--use-postgres-driver
-
将此值设置为
true
时,系统会优先考虑类路径中的 Postgres JDBC 驱动程序,以避免与 Amazon Redshift JDBC 驱动程序发生冲突。此选项仅适用于 Amazon Glue 版本 2.0。 --user-jars-first
-
将此值设置为
true
时,系统会优先考虑类路径中客户的额外 JAR 文件。此选项仅适用于 Amazon Glue 版本 2.0 或更高版本。 --conf
-
控制 Spark 配置参数。适用于高级使用案例。
Amazon Glue 在内部使用以下参数,您永远不要使用它们:
-
--debug
- 供 Amazon Glue 内部使用。请勿设置。 -
--mode
- 供 Amazon Glue 内部使用。请勿设置。 -
--JOB_NAME
- 供 Amazon Glue 内部使用。请勿设置。