

# DynamicFrameReader 클래스
<a name="aws-glue-api-crawler-pyspark-extensions-dynamic-frame-reader"></a>

##  - 메서드 -
<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)`**

탄력적 분산형 데이터셋(RDD)로부터 `DynamicFrame`을 판독합니다.
+ `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` - 경로 및 데이터베이스 테이블과 같은 연결 옵션입니다(선택 사항). 자세한 내용은 [Spark를 위한 AWS Glue의 ETL 연결 유형 및 옵션](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-connect.html)을 참조하세요. `s3`의 `connection_type`의 경우, Amazon S3 경로가 배열에 정의됩니다.

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

  JDBC 연결의 경우, 몇 까지 속성이 정의되어야 합니다. 단, 데이터베이스 이름이 URL의 일부여야 합니다. 연결 옵션에 선택적으로 포함될 수 있습니다.
**주의**  
스크립트에 암호를 저장하는 것은 권장되지 않습니다. AWS Secrets Manager 또는 AWS Glue 데이터 카탈로그에서 데이터를 검색할 때 `boto3` 사용을 고려합니다.

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

  병렬 읽기를 수행하는 JDBC 연결의 경우 해시 필드 옵션을 설정할 수 있습니다. 예:

  ```
  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` - 데이터 집합 내 모든 파일을 나열하거나 읽지 않아도 파티션에 필터링할 수 있습니다. 자세한 내용은 [푸시다운 조건자를 사용하여 사전 필터링](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` - 데이터 집합 내 모든 파일을 나열하거나 읽지 않아도 파티션에 필터링할 수 있습니다. 자세한 내용은 [푸시다운 조건자를 사용하여 예비 필터링](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) 섹션을 참조하세요.