GlueContext 类 - Amazon连接词
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

GlueContext 类

将 Apache 火花包装SparkContext对象,从而提供与 Apache Spark 平台交互的机制。

在 Amazon S3 中使用数据集

purge_table

purge_table(catalog_id=None, database="", table_name="", options={}, transformation_ctx="")

从 Amazon S3 中删除指定目录的数据库和表的文件。如果删除一个分区中的所有文件,则也会从目录中删除该分区。

如果希望能够恢复已删除的对象,可以启用对象版本控制在 Amazon S3 存储桶上。如果从未启用对象版本控制的存储桶中删除一个对象,则无法恢复该对象。有关如何恢复已启用版本控制的存储桶中的已删除对象的详细信息,请参阅如何检索已被删除的 Amazon S3 对象?在 Amazon Web Services Support 知识中心。

  • catalog_id— 正在访问的数据目录的目录 ID(数据目录的账户 ID)。默认设置为 NoneNone 默认为服务中调用账户的目录 ID。

  • database – 要使用的数据库。

  • table_name— 要使用的表的名称。

  • options— 用于筛选要删除的文件和清单文件生成的选项。

    • retentionPeriod— 指定保留文件的时段(以小时为单位)。比保留期更新的文件将被保留。默认情况下设置为 168 小时(7 天)。

    • partitionPredicate— 满足此谓词的分区将被删除。这些分区中保留期内的文件不会被删除。设置为""— 默认情况下为空。

    • excludeStorageClasses— 具有存储类的文件excludeStorageClasses集不会被删除。默认值为Set()― 一个空集。

    • manifestFilePath— 用于生成清单文件的可选路径。所有成功清除的文件将记录在 Success.csv 中,所有未能清除的文件将记录在 Failed.csv

  • transformation_ctx – 要使用的转换上下文 (可选)。在清单文件路径中使用。

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 路径中删除文件。

如果希望能够恢复已删除的对象,可以启用对象版本控制在 Amazon S3 存储桶上。如果从未启用对象版本控制的存储桶中删除一个对象,则无法恢复该对象。有关如何恢复存储桶中的已删除对象的更多信息,请参阅如何检索已被删除的 Amazon S3 对象?在 Amazon Web Services Support 知识中心。

  • s3_path— 要删除的文件的 Amazon S3 中的路径,格式为s3://<bucket>/<prefix>/

  • options— 用于筛选要删除的文件和清单文件生成的选项。

    • retentionPeriod— 指定保留文件的时段(以小时为单位)。比保留期更新的文件将被保留。默认情况下设置为 168 小时(7 天)。

    • partitionPredicate— 满足此谓词的分区将被删除。这些分区中保留期内的文件不会被删除。设置为""— 默认情况下为空。

    • excludeStorageClasses— 具有存储类的文件excludeStorageClasses集不会被删除。默认值为Set()― 一个空集。

    • manifestFilePath— 用于生成清单文件的可选路径。所有成功清除的文件将记录在 Success.csv 中,所有未能清除的文件将记录在 Failed.csv

  • transformation_ctx – 要使用的转换上下文 (可选)。在清单文件路径中使用。

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 上的文件的存储类。

可以在任意两个存储类之间转换。对于 GLACIERDEEP_ARCHIVE 存储类,您可以转换到这些类。但您可以使用 S3 RESTOREGLACIERDEEP_ARCHIVE 存储类进行转换。

如果您正在运行Amazon从 Amazon S3 读取文件或分区的 ETL 作业,您可以排除某些 Amazon S3 存储类类型。有关更多信息,请参阅 。不包括 Amazon S3 存储类

  • database – 要使用的数据库。

  • table_name— 要使用的表的名称。

  • transition_toAmazon S3 存储类以将其切换到。

  • options— 用于筛选要删除的文件和清单文件生成的选项。

    • retentionPeriod— 指定保留文件的时段(以小时为单位)。比保留期更新的文件将被保留。默认情况下设置为 168 小时(7 天)。

    • partitionPredicate— 将转换满足此谓词的分区。这些分区中保留期内的文件不会被转换。设置为""— 默认情况下为空。

    • excludeStorageClasses— 具有存储类的文件excludeStorageClasses集不会被转换。默认值为Set()― 一个空集。

    • manifestFilePath— 用于生成清单文件的可选路径。所有成功转换的文件将记录在 Success.csv 中,所有未能转换的文件将记录在 Failed.csv

    • accountId— 要运行转换的 Amazon Web Services 账户 ID。对于此转换是必需的。

    • roleArn—Amazon角色运行转换。对于此转换是必需的。

  • transformation_ctx – 要使用的转换上下文 (可选)。在清单文件路径中使用。

  • catalog_id— 正在访问的数据目录的目录 ID(数据目录的账户 ID)。默认设置为 NoneNone 默认为服务中调用账户的目录 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 路径中的文件的存储类。

可以在任意两个存储类之间转换。对于 GLACIERDEEP_ARCHIVE 存储类,您可以转换到这些类。但您可以使用 S3 RESTOREGLACIERDEEP_ARCHIVE 存储类进行转换。

如果您正在运行Amazon从 Amazon S3 读取文件或分区的 ETL 作业,您可以排除某些 Amazon S3 存储类类型。有关更多信息,请参阅 。不包括 Amazon S3 存储类

  • s3_path— 要转换的文件在 Amazon S3 中的路径,格式为s3://<bucket>/<prefix>/

  • transition_toAmazon S3 存储类以将其切换到。

  • options— 用于筛选要删除的文件和清单文件生成的选项。

    • retentionPeriod— 指定保留文件的时段(以小时为单位)。比保留期更新的文件将被保留。默认情况下设置为 168 小时(7 天)。

    • partitionPredicate— 将转换满足此谓词的分区。这些分区中保留期内的文件不会被转换。设置为""— 默认情况下为空。

    • excludeStorageClasses— 具有存储类的文件excludeStorageClasses集不会被转换。默认值为Set()― 一个空集。

    • manifestFilePath— 用于生成清单文件的可选路径。所有成功转换的文件将记录在 Success.csv 中,所有未能转换的文件将记录在 Failed.csv

    • accountId— 要运行转换的 Amazon Web Services 账户 ID。对于此转换是必需的。

    • roleArn—Amazon角色运行转换。对于此转换是必需的。

  • 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。有效值包括 s3mysqlpostgresqlredshiftsqlserveroracledynamodb

  • transformation_ctx – 要使用的转换上下文 (可选)。

  • options – 可选名称/值对的集合。有关更多信息,请参阅 中的 ETL 的连接类型和选项Amazon连接词

以下是使用 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 – 可选名称/值对的集合。可能的选项包括中的 ETL 的连接类型和选项Amazon连接词但除外endpointUrlstreamNamebootstrap.serverssecurity.protocoltopicNameclassification, 和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。有效值包括 s3mysqlpostgresqlredshiftsqlserveroracledynamodb

  • connection_options— 连接选项,例如路径和数据库表 (可选)。对于connection_types3时,定义 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”架构。

    有关更多信息,请参阅 中的 ETL 的连接类型和选项Amazon连接词

  • format– 格式规范 (可选)。这用于 Amazon S3 或Amazon支持多种格式的 Glue 连接。有关支持的格式,请参阅 中的 ETL 输入和输出的格式选项Amazon连接词

  • format_options– 指定格式的格式选项。有关支持的格式,请参阅 中的 ETL 输入和输出的格式选项Amazon连接词

  • transformation_ctx – 要使用的转换上下文 (可选)。

添加时间列

add_ingestion_time_columns(dataFrame, timeGranularity = "")

附加摄入时间列,如ingest_yearingest_monthingest_dayingest_houringest_minute添加到输入DataFrame。此函数会自动生成在由Amazon当您指定以 Amazon 简单存储服务为目标的数据目录表时,请 Glue 合。此函数会自动更新输出表上的引入时间列的分区。这样可以在输入时间自动对输出数据进行分区,而无需在输入数据中显式的引入时间列。

  • dataFramedataFrame将摄入时间列附加到。

  • 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。有效值包括 s3mysqlpostgresqlredshiftsqlserveroracle

  • 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。有效值包括 s3mysqlpostgresqlredshiftsqlserveroracle

  • connection_options – 连接选项,例如路径和数据库表 (可选)。对于connection_types3时,定义 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”架构。

    有关更多信息,请参阅 中的 ETL 的连接类型和选项Amazon连接词

  • format– 格式规范 (可选)。这用于 Amazon S3 或Amazon支持多种格式的 Glue 连接。有关支持的格式,请参阅 中的 ETL 输入和输出的格式选项Amazon连接词

  • format_options– 指定格式的格式选项。有关支持的格式,请参阅 中的 ETL 输入和输出的格式选项Amazon连接词

  • 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 – 要写入的 DynamicFrameDynamicFrameCollection

  • connection_type— 连接类型,例如 Amazon S3、Amazon Redshift 和 JDBC。有效值包括 s3mysqlpostgresqlredshiftsqlserveroracle

  • connection_options – 连接选项,例如路径和数据库表 (可选)。对于connection_types3时,定义 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”架构。

    有关更多信息,请参阅 中的 ETL 的连接类型和选项Amazon连接词

  • format– 格式规范 (可选)。这用于 Amazon S3 或Amazon支持多种格式的 Glue 连接。有关支持的格式,请参阅 中的 ETL 输入和输出的格式选项Amazon连接词

  • format_options– 指定格式的格式选项。有关支持的格式,请参阅 中的 ETL 输入和输出的格式选项Amazon连接词

  • 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 – 要使用的转换上下文 (可选)。

  • additional_options – 可选名称/值对的集合。

  • 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 – 连接选项,例如路径和数据库表 (可选)。有关更多信息,请参阅 中的 ETL 的连接类型和选项Amazon连接词

  • 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 – 要写入的 DynamicFrameDynamicFrameCollection

  • catalog_connection – 要使用的目录连接。

  • connection_options – 连接选项,例如路径和数据库表 (可选)。有关更多信息,请参阅 中的 ETL 的连接类型和选项Amazon连接词

  • 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使用密钥执行userpasswordvendor, 和url数据目录中的连接对象。

  • connection_name— 数据目录中的连接的名称

  • catalog_id— 正在访问的数据目录的目录 ID (账户 ID)。当为 None 时,将使用调用方的默认账户 ID。