

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# DynamicFrameReader 類別
<a name="aws-glue-api-crawler-pyspark-extensions-dynamic-frame-reader"></a>

##  — methods —
<a name="aws-glue-api-crawler-pyspark-extensions-dynamic-frame-reader-_methods"></a>
+ [\_\_init\_\_](#aws-glue-api-crawler-pyspark-extensions-dynamic-frame-reader-__init__)
+ [from\_rdd](#aws-glue-api-crawler-pyspark-extensions-dynamic-frame-reader-from_rdd)
+ [from\_options](#aws-glue-api-crawler-pyspark-extensions-dynamic-frame-reader-from_options)
+ [from\_catalog](#aws-glue-api-crawler-pyspark-extensions-dynamic-frame-reader-from_catalog)

## \_\_init\_\_
<a name="aws-glue-api-crawler-pyspark-extensions-dynamic-frame-reader-__init__"></a>

**`__init__(glue_context)`**
+ `glue_context` – 所要使用的 [GlueContext 類別](aws-glue-api-crawler-pyspark-extensions-glue-context.md)。

## from\_rdd
<a name="aws-glue-api-crawler-pyspark-extensions-dynamic-frame-reader-from_rdd"></a>

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

`DynamicFrame` 從彈性分散式資料集 (RDD) 的讀取。
+ `data` – 欲讀取的資料集。
+ `name` – 欲讀取的名稱。
+ `schema` - 欲讀取的結構描述 (選用)。
+ `sampleRatio` – 取樣率 (選用)。

## from\_options
<a name="aws-glue-api-crawler-pyspark-extensions-dynamic-frame-reader-from_options"></a>

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

使用指定的連線和格式讀取 `DynamicFrame`。
+ `connection_type` – 連線類型。有效值包括 `s3`、`mysql`、`postgresql`、`redshift`、`sqlserver`、`oracle`、`dynamodb` 和 `snowflake`。
+ `connection_options` – 連線選項，例如路徑和資料庫資料表 (選用)。如需詳細資訊，請參閱 [ Glue for Spark 中的 ETL AWS 連線類型和選項](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-connect.html)。如果是 `connection_type` 的 `s3`，Amazon S3 路徑定義在陣列中。

  ```
  connection_options = {"paths": [ "{{s3://amzn-s3-demo-bucket/object_a}}", "{{s3://amzn-s3-demo-bucket/object_b}}"]}
  ```

  如果是 JDBC 連線，必須定義幾項屬性。請注意，資料庫名稱必須是 URL 的一部分。它可以選擇性包含在連線選項中。
**警告**  
不建議在指令碼中存放密碼。考慮使用 從 AWS Secrets Manager 或 Glue Data Catalog AWS `boto3`擷取它們。

  ```
  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 資料表中平行讀取](run-jdbc-parallel-read-job.md)。
+ `format` – 格式化規格 (選用)。這用於 Amazon Simple Storage Service (Amazon S3) 或支援多種格式的 AWS Glue 連線。請參閱 [AWS Glue for Spark 中的輸入與輸出的資料格式選項](aws-glue-programming-etl-format.md) 以了解受支援的格式。
+ `format_options` – 指定格式的格式選項。請參閱 [AWS Glue for Spark 中的輸入與輸出的資料格式選項](aws-glue-programming-etl-format.md) 以了解受支援的格式。
+ `transformation_ctx` – 欲使用的轉換細節 (選用)。
+ `push_down_predicate` – 篩選分割區，而無需列出和讀取資料集中的所有檔案。如需詳細資訊，請參閱[使用 Pushdown 述詞預先篩選](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-partitions.html#aws-glue-programming-etl-partitions-pushdowns)。

## from\_catalog
<a name="aws-glue-api-crawler-pyspark-extensions-dynamic-frame-reader-from_catalog"></a>

**`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` – 篩選分割區，而無需列出和讀取資料集中的所有檔案。如需詳細資訊，請參閱[使用 pushdown 述詞預先篩選](aws-glue-programming-etl-partitions.md#aws-glue-programming-etl-partitions-pushdowns)。
+ `additional_options` – 提供給 AWS Glue 的額外選項。
  + 若要使用執行平行讀取的 JDBC 連線，您可以設定 `hashfield`、`hashexpression` 或 `hashpartitions` 選項。例如：

    ```
    additional_options = {"hashfield": "{{month}}"} 
    ```

    如需詳細資訊，請參閱[從 JDBC 資料表中平行讀取](run-jdbc-parallel-read-job.md)。
  + 若要傳遞目錄表達式以根據索引欄進行篩選，您可以參閱 `catalogPartitionPredicate` 選項。

    `catalogPartitionPredicate` — 您可以傳遞目錄表達式以根據索引欄進行篩選。這會將篩選下推至伺服器端。如需詳細資訊，請參閱 [AWS Glue 分割區索引](https://docs.aws.amazon.com/glue/latest/dg/partition-indexes.html)。注意 `push_down_predicate` 和 `catalogPartitionPredicate` 使用不同的語法。前者使用 Spark SQL 標準語法，後者使用 JSQL 剖析器。

    如需詳細資訊，請參閱[在 AWS Glue 中管理適用於 ETL 輸出的分割區](aws-glue-programming-etl-partitions.md)。