本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
GlueContext 类
包装 Apache Spark SparkContext
在 Amazon S3 中使用数据集
purge_table
purge_table(database, table_name, options={}, transformation_ctx="", catalog_id=None)
从 Amazon S3 中删除指定目录的数据库和表的文件。如果删除一个分区中的所有文件,则也会从目录中删除该分区。
如果您希望能够恢复已删除的对象,则可以对 存储桶启用
-
database
– 要使用的数据库。 -
table_name
– 要使用的表的名称。 -
options
– 用于筛选要删除的文件和清单文件生成的选项。-
retentionPeriod
– 指定保留文件的时段(以小时为单位)。比保留期更新的文件将被保留。默认情况下设置为 168 小时(7 天)。 -
partitionPredicate
– 满足此谓词的分区将被删除。这些分区中保留期内的文件不会被删除。设置为""
– 默认情况下为空。 -
excludeStorageClasses
–excludeStorageClasses
集中包含存储类的文件不会被删除。默认值是Set()
– 一个空集。 -
manifestFilePath
– 用于生成清单文件的可选路径。所有成功清除的文件将记录在Success.csv
中,所有未能清除的文件将记录在Failed.csv
中
-
-
transformation_ctx
– 要使用的转换上下文(可选)。在清单文件路径中使用。 -
catalog_id
– 正在访问的 数据目录 的目录 ID(数据目录 的账户 ID)。默认设置为None
。None
默认为服务中调用账户的目录 ID。
glueContext.purge_table("database", "table", {"partitionPredicate": "(month=='march')", "retentionPeriod": 1, "excludeStorageClasses": ["STANDARD_IA"], "manifestFilePath": "s3://bucketmanifest/"})
purge_s3_path
purge_s3_path(s3_path, options={}, transformation_ctx="")
以递归方式从指定的 Amazon S3 路径中删除文件。
如果您希望能够恢复已删除的对象,则可以对 存储桶启用
-
s3_path
– 要删除的文件 Amazon S3 中的路径,格式为s3://<
bucket
>/<prefix
>/ -
options
– 用于筛选要删除的文件和清单文件生成的选项。-
retentionPeriod
– 指定保留文件的时段(以小时为单位)。比保留期更新的文件将被保留。默认情况下设置为 168 小时(7 天)。 -
partitionPredicate
– 满足此谓词的分区将被删除。这些分区中保留期内的文件不会被删除。设置为""
– 默认情况下为空。 -
excludeStorageClasses
–excludeStorageClasses
集中包含存储类的文件不会被删除。默认值是Set()
– 一个空集。 -
manifestFilePath
– 用于生成清单文件的可选路径。所有成功清除的文件将记录在Success.csv
中,所有未能清除的文件将记录在Failed.csv
中
-
-
transformation_ctx
– 要使用的转换上下文(可选)。在清单文件路径中使用。 -
catalog_id
– 正在访问的 数据目录 的目录 ID(数据目录 的账户 ID)。默认设置为None
。None
默认为服务中调用账户的目录 ID。
glueContext.purge_s3_path("s3://bucket/path/", {"retentionPeriod": 1, "excludeStorageClasses": ["STANDARD_IA"], "manifestFilePath": "s3://bucketmanifest/"})
transition_table
transition_table(database, table_name, transition_to, options={}, transformation_ctx="", catalog_id=None)
为指定目录的数据库和表转换存储在 Amazon S3 上的文件的存储类。
可以在任意两个存储类之间转换。对于 GLACIER
和 DEEP_ARCHIVE
存储类,您可以转换到这些类。但您可以使用 S3 RESTORE
从 GLACIER
和 DEEP_ARCHIVE
存储类进行转换。
如果您要运行从 Amazon S3 读取文件或分区的 AWS Glue ETL 作业,则可以排除某些 Amazon S3 存储类类型。有关更多信息,请参阅排除 Amazon S3 存储类。
-
database
– 要使用的数据库。 -
table_name
– 要使用的表的名称。 -
transition_to
– 要转换到的 Amazon S3 存储类。 -
options
– 用于筛选要删除的文件和清单文件生成的选项。-
retentionPeriod
– 指定保留文件的时段(以小时为单位)。比保留期更新的文件将被保留。默认情况下设置为 168 小时(7 天)。 -
partitionPredicate
– 将转换满足此谓词的分区。这些分区中保留期内的文件不会被转换。设置为""
– 默认情况下为空。 -
excludeStorageClasses
–excludeStorageClasses
集中包含存储类的文件不会被转换。默认值是Set()
– 一个空集。 -
manifestFilePath
– 用于生成清单文件的可选路径。所有成功转换的文件将记录在Success.csv
中,所有未能转换的文件将记录在Failed.csv
中 -
accountId
– 要运行转换的 AWS 账户 ID。对于此转换是必需的。 -
roleArn
– 要运行转换的 AWS 角色。对于此转换是必需的。
-
-
transformation_ctx
– 要使用的转换上下文(可选)。在清单文件路径中使用。 -
catalog_id
– 正在访问的 数据目录 的目录 ID(数据目录 的账户 ID)。默认设置为None
。None
默认为服务中调用账户的目录 ID。
glueContext.transition_table("database", "table", "STANDARD_IA", {"retentionPeriod": 1, "excludeStorageClasses": ["STANDARD_IA"], "manifestFilePath": "s3://bucketmanifest/", "accountId": "12345678901", "roleArn": "arn:aws:iam::123456789012:user/example-username"})
transition_s3_path
transition_s3_path(s3_path, transition_to, options={}, transformation_ctx="")
以递归方式转换指定 Amazon S3 路径中的文件的存储类。
可以在任意两个存储类之间转换。对于 GLACIER
和 DEEP_ARCHIVE
存储类,您可以转换到这些类。但您可以使用 S3 RESTORE
从 GLACIER
和 DEEP_ARCHIVE
存储类进行转换。
如果您要运行从 Amazon S3 读取文件或分区的 AWS Glue ETL 作业,则可以排除某些 Amazon S3 存储类类型。有关更多信息,请参阅排除 Amazon S3 存储类。
-
s3_path
– 要转换的文件的 Amazon S3 中的路径,格式为s3://<
bucket
>/<prefix
>/ -
transition_to
– 要转换到的 Amazon S3 存储类。 -
options
– 用于筛选要删除的文件和清单文件生成的选项。-
retentionPeriod
– 指定保留文件的时段(以小时为单位)。比保留期更新的文件将被保留。默认情况下设置为 168 小时(7 天)。 -
partitionPredicate
– 将转换满足此谓词的分区。这些分区中保留期内的文件不会被转换。设置为""
– 默认情况下为空。 -
excludeStorageClasses
–excludeStorageClasses
集中包含存储类的文件不会被转换。默认值是Set()
– 一个空集。 -
manifestFilePath
– 用于生成清单文件的可选路径。所有成功转换的文件将记录在Success.csv
中,所有未能转换的文件将记录在Failed.csv
中 -
accountId
– 要运行转换的 AWS 账户 ID。对于此转换是必需的。 -
roleArn
– 要运行转换的 AWS 角色。对于此转换是必需的。
-
-
transformation_ctx
– 要使用的转换上下文(可选)。在清单文件路径中使用。
glueContext.transition_s3_path("s3://bucket/prefix/", "STANDARD_IA", {"retentionPeriod": 1, "excludeStorageClasses": ["STANDARD_IA"], "manifestFilePath": "s3://bucketmanifest/", "accountId": "12345678901", "roleArn": "arn:aws:iam::123456789012:user/example-username"})
Creating
__init__
__init__(sparkContext)
-
sparkContext
– 要使用的 Apache Spark 上下文。
getSource
getSource(connection_type, transformation_ctx = "", **options)
创建一个 DataSource
对象,该对象可用于从外部来源读取 DynamicFrames
。
-
connection_type
– 要使用的连接类型,例如 Amazon Simple Storage Service (Amazon S3)、Amazon Redshift 和 JDBC。有效值包括s3
、mysql
、postgresql
、redshift
、sqlserver
、oracle
和dynamodb
。 -
transformation_ctx
– 要使用的转换上下文(可选)。 -
options
– 可选名称/值对的集合。有关更多信息,请参阅AWS Glue 中的 ETL 的连接类型和选项。
以下是使用 getSource
的示例。
>>> data_source = context.getSource("file", paths=["/in/path"]) >>> data_source.setFormat("json") >>> myFrame = data_source.getFrame()
create_dynamic_frame_from_rdd
create_dynamic_frame_from_rdd(data, name, schema=None, sample_ratio=None, transformation_ctx="")
返回一个从 Apache Spark 弹性分布式数据集 (RDD) 创建的 DynamicFrame
。
-
data
– 要使用的数据源。 -
name
– 要使用的数据的名称。 -
schema
– 要使用的架构(可选)。 -
sample_ratio
– 要使用的采样率(可选)。 -
transformation_ctx
– 要使用的转换上下文(可选)。
create_dynamic_frame_from_catalog
create_dynamic_frame_from_catalog(database, table_name, redshift_tmp_dir, transformation_ctx
= "", push_down_predicate= "", additional_options = {}, catalog_id = None)
返回一个使用目录数据库和表名称创建的 DynamicFrame
。
-
Database
– 要从中进行读取的数据库。 -
table_name
– 要从中进行读取的表的名称。 -
redshift_tmp_dir
– 要使用的 Amazon Redshift 临时目录(可选)。 -
transformation_ctx
– 要使用的转换上下文(可选)。 -
push_down_predicate
– 筛选分区,而不必列出并读取数据集中的所有文件。有关更多信息,请参阅使用下推谓词进行预筛选。 -
additional_options
– 可选名称/值对的集合。可能的选项包括 AWS Glue 中的 ETL 的连接类型和选项 中列出的选项,但endpointUrl
、streamName
、bootstrap.servers
、security.protocol
、topicName
、classification
和delimiter
除外。 -
catalog_id
— 正在访问的数据目录的目录 ID(账户 ID)。当为 None 时,将使用调用方的默认账户 ID。
create_dynamic_frame_from_options
create_dynamic_frame_from_options(connection_type, connection_options={},
format=None, format_options={}, transformation_ctx = "")
返回一个使用指定连接和格式创建的 DynamicFrame
。
-
connection_type
– 连接类型,例如 Amazon S3、Amazon Redshift 和 JDBC。有效值包括s3
、mysql
、postgresql
、redshift
、sqlserver
、oracle
和dynamodb
。 -
connection_options
– 连接选项,例如路径和数据库表(可选)。对于connection_type
为s3
的情况,定义 Amazon S3 路径的列表。connection_options = {"paths": ["
s3://aws-glue-target/temp
"]}对于 JDBC 连接,必须定义多个属性。请注意,数据库名称必须是 URL 的一部分。它可以选择性地包含在连接选项中。
connection_options = {"url": "
jdbc-url/database
", "user": "username
", "password": "password
","dbtable": "table-name
", "redshiftTmpDir": "s3-tempdir-path
"}dbtable
属性是 JDBC 表的名称。对于在数据库中支持架构的 JDBC 数据存储,请指定schema.table-name
。 如果未提供架构,则使用默认的“public”架构。有关更多信息,请参阅AWS Glue 中的 ETL 的连接类型和选项。
-
format
– 格式规范(可选)。这用于 Amazon S3 或支持多种格式的 AWS Glue 连接。有关支持的格式,请参阅 AWS Glue 中的 ETL 输入和输出的格式选项。 -
format_options
– 指定格式的格式选项。有关支持的格式,请参阅 AWS Glue 中的 ETL 输入和输出的格式选项。 -
transformation_ctx
– 要使用的转换上下文(可选)。
add_ingestion_time_columns
add_ingestion_time_columns(dataFrame, timeGranularity = "")
将 ingest_year
、ingest_month
、ingest_day
、ingest_hour
、ingest_minute
等提取时间列附加到输入 DataFrame
中。 当您指定 AWS Glue 表并将 数据目录 作为目标时,此函数会在 Amazon S3 生成的脚本中自动生成。此函数会自动使用输出表上的提取时间列更新分区。这允许根据提取时间自动对输出数据进行分区,而无需在输入数据中显式提取时间列。
-
dataFrame
– 要将提取时间列附加到的dataFrame
。 -
timeGranularity
– 时间列的粒度。有效值为“day
”、“hour
”和“minute
”。例如,如果将“hour
”传递到函数,则原始dataFrame
将附加“ingest_year
”、“ingest_month
”、“ingest_day
”和“ingest_hour
”时间列。
在附加时间粒度列后返回数据帧。
例如:
dynamic_frame = DynamicFrame.fromDF(glueContext.add_ingestion_time_columns(dataFrame, "hour"))
Writing
getSink
getSink(connection_type, format = None, transformation_ctx = "", **options)
获取一个 DataSink
对象,该对象可用于将 DynamicFrames
写入外部来源。首先检查 SparkSQL format
以确保获得预期的接收器。
-
connection_type
– 要使用的连接类型,例如 Amazon S3、Amazon Redshift 和 JDBC。有效值包括s3
、mysql
、postgresql
、redshift
、sqlserver
和oracle
。 -
format
– 要使用的 SparkSQL 格式(可选)。 -
transformation_ctx
– 要使用的转换上下文(可选)。 -
options
– 选项名称/值对的集合。
例如:
>>> data_sink = context.getSink("s3") >>> data_sink.setFormat("json"), >>> data_sink.writeFrame(myFrame)
write_dynamic_frame_from_options
write_dynamic_frame_from_options(frame, connection_type, connection_options={}, format=None,
format_options={}, transformation_ctx = "")
写入并返回一个使用指定连接和格式的 DynamicFrame
。
-
frame
– 要写入的DynamicFrame
。 -
connection_type
– 连接类型,例如 Amazon S3、Amazon Redshift 和 JDBC。有效值包括s3
、mysql
、postgresql
、redshift
、sqlserver
和oracle
。 -
connection_options
– 连接选项,例如路径和数据库表(可选)。对于connection_type
为s3
的情况,定义 Amazon S3 路径。connection_options = {"path": "
s3://aws-glue-target/temp
"}对于 JDBC 连接,必须定义多个属性。请注意,数据库名称必须是 URL 的一部分。它可以选择性地包含在连接选项中。
connection_options = {"url": "
jdbc-url/database
", "user": "username
", "password": "password
","dbtable": "table-name
", "redshiftTmpDir": "s3-tempdir-path
"}dbtable
属性是 JDBC 表的名称。对于在数据库中支持架构的 JDBC 数据存储,请指定schema.table-name
。 如果未提供架构,则使用默认的“public”架构。有关更多信息,请参阅AWS Glue 中的 ETL 的连接类型和选项。
-
format
– 格式规范(可选)。这用于 Amazon S3 或支持多种格式的 AWS Glue 连接。有关支持的格式,请参阅 AWS Glue 中的 ETL 输入和输出的格式选项。 -
format_options
– 指定格式的格式选项。有关支持的格式,请参阅 AWS Glue 中的 ETL 输入和输出的格式选项。 -
transformation_ctx
– 要使用的转换上下文(可选)。
write_from_options
write_from_options(frame_or_dfc, connection_type,
connection_options={}, format={}, format_options={}, transformation_ctx = "")
写入并返回一个使用指定连接和格式信息创建的 DynamicFrame
or DynamicFrameCollection
。
-
frame_or_dfc
– 要写入的DynamicFrame
或DynamicFrameCollection
。 -
connection_type
– 连接类型,例如 Amazon S3、Amazon Redshift 和 JDBC。有效值包括s3
、mysql
、postgresql
、redshift
、sqlserver
和oracle
。 -
connection_options
– 连接选项,例如路径和数据库表(可选)。对于connection_type
为s3
的情况,定义 Amazon S3 路径。connection_options = {"path": "
s3://aws-glue-target/temp
"}对于 JDBC 连接,必须定义多个属性。请注意,数据库名称必须是 URL 的一部分。它可以选择性地包含在连接选项中。
connection_options = {"url": "
jdbc-url/database
", "user": "username
", "password": "password
","dbtable": "table-name
", "redshiftTmpDir": "s3-tempdir-path
"}dbtable
属性是 JDBC 表的名称。对于在数据库中支持架构的 JDBC 数据存储,请指定schema.table-name
。 如果未提供架构,则使用默认的“public”架构。有关更多信息,请参阅AWS Glue 中的 ETL 的连接类型和选项。
-
format
– 格式规范(可选)。这用于 Amazon S3 或支持多种格式的 AWS Glue 连接。有关支持的格式,请参阅 AWS Glue 中的 ETL 输入和输出的格式选项。 -
format_options
– 指定格式的格式选项。有关支持的格式,请参阅 AWS Glue 中的 ETL 输入和输出的格式选项。 -
transformation_ctx
– 要使用的转换上下文(可选)。
write_dynamic_frame_from_catalog
write_dynamic_frame_from_catalog(frame, database, table_name, redshift_tmp_dir, transformation_ctx
= "", addtional_options = {}, catalog_id = None)
写入并返回一个使用目录数据库和表名称的 DynamicFrame
。
-
frame
– 要写入的DynamicFrame
。 -
Database
– 要从中进行读取的数据库。 -
table_name
– 要从中进行读取的表的名称。 -
redshift_tmp_dir
– 要使用的 Amazon Redshift 临时目录(可选)。 -
transformation_ctx
– 要使用的转换上下文(可选)。 -
catalog_id
— 正在访问的数据目录的目录 ID(账户 ID)。当为 None 时,将使用调用方的默认账户 ID。
write_dynamic_frame_from_jdbc_conf
write_dynamic_frame_from_jdbc_conf(frame, catalog_connection, connection_options={},
redshift_tmp_dir = "", transformation_ctx = "", catalog_id = None)
写入并返回一个使用指定 JDBC 和连接信息的 DynamicFrame
。
-
frame
– 要写入的DynamicFrame
。 -
catalog_connection
– 要使用的目录连接。 -
connection_options
– 连接选项,例如路径和数据库表(可选)。有关更多信息,请参阅AWS Glue 中的 ETL 的连接类型和选项。 -
redshift_tmp_dir
– 要使用的 Amazon Redshift 临时目录(可选)。 -
transformation_ctx
– 要使用的转换上下文(可选)。 -
catalog_id
— 正在访问的数据目录的目录 ID(账户 ID)。当为 None 时,将使用调用方的默认账户 ID。
write_from_jdbc_conf
write_from_jdbc_conf(frame_or_dfc, catalog_connection, connection_options={}, redshift_tmp_dir = "", transformation_ctx = "", catalog_id = None)
写入并返回一个使用指定 JDBC 和连接信息的 DynamicFrame
or DynamicFrameCollection
。
-
frame_or_dfc
– 要写入的DynamicFrame
或DynamicFrameCollection
。 -
catalog_connection
– 要使用的目录连接。 -
connection_options
– 连接选项,例如路径和数据库表(可选)。有关更多信息,请参阅AWS Glue 中的 ETL 的连接类型和选项。 -
redshift_tmp_dir
– 要使用的 Amazon Redshift 临时目录(可选)。 -
transformation_ctx
– 要使用的转换上下文(可选)。 -
catalog_id
— 正在访问的数据目录的目录 ID(账户 ID)。当为 None 时,将使用调用方的默认账户 ID。
Extracting
extract_jdbc_conf
extract_jdbc_conf(connection_name, catalog_id = None)
从 dict
中的连接对象返回具有键 user
、password
、vendor
和 url
的 数据目录。
-
connection_name
– 数据目录 中的连接名称。 -
catalog_id
— 正在访问的数据目录的目录 ID(账户 ID)。当为 None 时,将使用调用方的默认账户 ID。