DynamicFrameReader 班级 - Amazon Glue
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

DynamicFrameReader 班级

 – 方法 –

__init__

__init__(glue_context)

from_rdd

from_rdd(data, name, schema=None, sampleRatio=None)

从弹性分布式数据集 (RDD) 读取 DynamicFrame

  • data – 要从中读取的数据集。

  • name – 要从中读取的名称。

  • schema – 要读取的架构 (可选)。

  • sampleRatio – 采样率 (可选)。

from_options

from_options(connection_type, connection_options={}, format=None, format_options={}, transformation_ctx="")

使用指定的连接和格式读取 DynamicFrame

  • connection_type – 连接类型。有效值包括s3mysqlpostgresqlredshiftsqlserveroracledynamodb、和snowflake

  • connection_options – 连接选项,例如路径和数据库表 (可选)。有关更多信息,请参阅 Amazon Glue for Spark 中的 ETL 连接类型和选项。对于 connection_types3,Amazon S3 路径在数组中定义。

    connection_options = {"paths": [ "s3://mybucket/object_a", "s3://mybucket/object_b"]}

    对于 JDBC 连接,必须定义多个属性。请注意,数据库名称必须是 URL 的一部分。它可以选择性地包含在连接选项中。

    警告

    不建议在脚本中存储密码。考虑使用boto3从 Amazon Glu Amazon Secrets Manager e 数据目录中检索它们。

    connection_options = {"url": "jdbc-url/database", "user": "username", "password": passwordVariable,"dbtable": "table-name", "redshiftTmpDir": "s3-tempdir-path"}

    对于执行并行读取的 JDBC 连接,您可以设置 hashfield 选项。例如:

    connection_options = {"url": "jdbc-url/database", "user": "username", "password": passwordVariable,"dbtable": "table-name", "redshiftTmpDir": "s3-tempdir-path" , "hashfield": "month"}

    有关更多信息,请参阅 从 JDBC 表并行读取

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

  • format_options – 指定格式的格式选项。有关支持的格式,请参阅 Amazon Glue for Spark 中的输入和输出的数据格式选项

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

  • push_down_predicate – 筛选分区,而不必列出并读取数据集中的所有文件。有关更多信息,请参阅使用下推谓词进行预筛选

from_catalog

from_catalog(database, table_name, redshift_tmp_dir="", transformation_ctx="", push_down_predicate="", additional_options={})

使用指定的目录命名空间和表名称读取 DynamicFrame

  • database – 要从中读取的数据库。

  • table_name – 要从中读取的表的名称。

  • redshift_tmp_dir – 要使用的 Amazon Redshift 临时目录(如果不从 Redshift 中读取数据,则此项是可选的)。

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

  • push_down_predicate – 筛选分区,而不必列出并读取数据集中的所有文件。有关更多信息,请参阅 使用下推谓词进行预筛选

  • additional_options 提供给 Amazon Glue 的额外选项。

    • 要使用执行并行读取的 JDBC 连接,您可以设置 hashfieldhashexpressionhashpartitions 选项。例如:

      additional_options = {"hashfield": "month"}

      有关更多信息,请参阅 从 JDBC 表并行读取

    • 要传递目录表达式以根据索引列进行筛选,您可以查看 catalogPartitionPredicate 选项。

      catalogPartitionPredicate – 要传递目录表达式以根据索引列进行筛选。这样会将筛选下推到服务器端。有关更多信息,请参阅 Amazon Glue 分区数据。请注意,push_down_predicatecatalogPartitionPredicate 使用不同的语法。前者使用 Spark SQL 标准语法,后者使用 JSQL 解析器。

      有关更多信息,请参阅 管理 Amazon Glue 中用于 ETL 输出的分区

    • 要读取 Lake Formation 受管表,可以使用以下附加选项:

      • transactionId –(字符串)用于读取受管表内容的事务 ID。如果未提交此事务,则读取将被视为该事务的一部分,并将看到其写入内容。如果已提交此事务,则其写入将在此读取中可见。如果此事务已中止,将返回错误。不能与 asOfTime 一起指定。

        注意

        必须设置 transactionIdasOfTime 才能访问受管表。

      • asOfTime— (TimeStamp: yyyy-[m] m-[d] d hh: mm: ss) 截至阅读表格内容的时间。不能与 transactionId 一起指定。

      • query –(可选)用作 Lake Formation 计划程序服务输入的 PartiQL 查询语句。如果未设置,原定设置为从表中选择所有数据。有关 PartiQL 的更多详细信息,请参阅 Amazon Lake Formation 开发人员指南中的行筛选条件表达式中的 PartIQL Support

      例 示例:从 Lake Formation 中的受管表读取时使用 PartiQL 查询语句
      txId = glueContext.start_transaction(read_only=False) datasource0 = glueContext.create_dynamic_frame.from_catalog( database = db, table_name = tbl, transformation_ctx = "datasource0", additional_options={ "transactionId":txId, "query":"SELECT * from tblName WHERE partitionKey=value;" }) ... glueContext.commit_transaction(txId)