

# Classe DynamicFrameWriter
<a name="aws-glue-api-crawler-pyspark-extensions-dynamic-frame-writer"></a>



##   Métodos
<a name="aws-glue-api-crawler-pyspark-extensions-dynamic-frame-writer-_methods"></a>
+ [\$1\$1init\$1\$1](#aws-glue-api-crawler-pyspark-extensions-dynamic-frame-writer-__init__)
+ [from\$1options](#aws-glue-api-crawler-pyspark-extensions-dynamic-frame-writer-from_options)
+ [from\$1catalog](#aws-glue-api-crawler-pyspark-extensions-dynamic-frame-writer-from_catalog)
+ [from\$1jdbc\$1conf](#aws-glue-api-crawler-pyspark-extensions-dynamic-frame-writer-from_jdbc_conf)

## \$1\$1init\$1\$1
<a name="aws-glue-api-crawler-pyspark-extensions-dynamic-frame-writer-__init__"></a>

**`__init__(glue_context)`**
+ `glue_context` – O [Classe GlueContext](aws-glue-api-crawler-pyspark-extensions-glue-context.md) a ser usado.

## from\$1options
<a name="aws-glue-api-crawler-pyspark-extensions-dynamic-frame-writer-from_options"></a>

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

Escreve um `DynamicFrame` usando a conexão e o formato especificados.
+ `frame` – O `DynamicFrame` a ser escrito.
+ `connection_type`: o tipo de conexão. Os valores válidos incluem `s3`, `mysql`, `postgresql`, `redshift`, `sqlserver` e `oracle`.
+ `connection_options` – Opções de conexão, como caminho e tabela de banco de dados (opcional). Para um `connection_type` do `s3`, um caminho do Amazon S3 é definido.

  ```
  connection_options = {"path": "s3://aws-glue-target/temp"}
  ```

  Para conexões JDBC, várias propriedades devem ser definidas. Observe que o nome do banco de dados deve fazer parte do URL. Ele também pode ser incluído nas opções de conexão.
**Atenção**  
Não é recomendável armazenar senhas no script. Considere usar `boto3` para recuperá-los do AWS Secrets Manager ou do catálogo de dados do AWS Glue.

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

  A propriedade `dbtable` é o nome da tabela JDBC. Para armazenamentos de dados JDBC que oferecem suporte a esquemas dentro de um banco de dados, especifique `schema.table-name`. Se um esquema não for fornecido, o esquema "público" padrão será usado.

  Para obter mais informações, consulte [Tipos e opções de conexão para ETL no AWS Glue para Spark](aws-glue-programming-etl-connect.md).
+ `format`: uma especificação de formato (opcional). Essa ação é usada para um Amazon Simple Storage Service (Amazon S3) ou uma conexão do AWS Glue que ofereça suporte a vários formatos. Consulte [Opções de formato de dados para entradas e saídas no AWS Glue para Spark](aws-glue-programming-etl-format.md) para obter os formatos compatíveis.
+ `format_options`: as opções de formato para o formato especificado. Consulte [Opções de formato de dados para entradas e saídas no AWS Glue para Spark](aws-glue-programming-etl-format.md) para obter os formatos compatíveis.
+ `transformation_ctx` – Um contexto de transformação a ser usado (opcional).

## from\$1catalog
<a name="aws-glue-api-crawler-pyspark-extensions-dynamic-frame-writer-from_catalog"></a>

**`from_catalog(frame, name_space, table_name, redshift_tmp_dir="", transformation_ctx="")`**

Escreve um `DynamicFrame` usando o banco de dados do catálogo e o nome da tabela especificados.
+ `frame` – O `DynamicFrame` a ser escrito.
+ `name_space` – O mecanismo de banco de dados a ser usado.
+ `table_name` – O `table_name` a ser usado.
+ `redshift_tmp_dir`: um diretório temporário do Amazon RedShift a ser usado (opcional).
+ `transformation_ctx` – Um contexto de transformação a ser usado (opcional).
+ `additional_options` – opções adicionais fornecidas ao AWS Glue. 

  Para gravar em tabelas governadas pelo Lake Formation, você pode usar estas opções adicionais:
  + `transactionId`: (string) o ID da transação no qual fazer a gravação na tabela governada. Esta transação já não pode ser confirmada ou anulada, ou a gravação falhará.
  + `callDeleteObjectsOnCancel `: (booleano, opcional) Se definido como `true` (padrão), o AWS Glue chama automaticamente a API `DeleteObjectsOnCancel` após o objeto ser gravado no Amazon S3. Para obter mais informações, consulte [DeleteObjectsOnCancel](https://docs.aws.amazon.com/lake-formation/latest/dg/aws-lake-formation-api-transactions-api.html#aws-lake-formation-api-transactions-api-DeleteObjectsOnCancel) no *Guia do desenvolvedor do AWS Lake Formation*.  
**Example Exemplo: gravação em uma tabela governada no Lake Formation**  

  ```
  txId = glueContext.start_transaction(read_only=False)
  glueContext.write_dynamic_frame.from_catalog(
      frame=dyf,
      database = db, 
      table_name = tbl, 
      transformation_ctx = "datasource0", 
      additional_options={"transactionId":txId})
  ...
  glueContext.commit_transaction(txId)
  ```

## from\$1jdbc\$1conf
<a name="aws-glue-api-crawler-pyspark-extensions-dynamic-frame-writer-from_jdbc_conf"></a>

**`from_jdbc_conf(frame, catalog_connection, connection_options={}, redshift_tmp_dir = "", transformation_ctx="")`**

Escreve um `DynamicFrame` usando as informações de conexão JDBC especificadas.
+ `frame` – O `DynamicFrame` a ser escrito.
+ `catalog_connection` – Uma conexão de catálogo a ser usada.
+ `connection_options` – Opções de conexão, como caminho e tabela de banco de dados (opcional).
+ `redshift_tmp_dir`: um diretório temporário do Amazon RedShift a ser usado (opcional).
+ `transformation_ctx` – Um contexto de transformação a ser usado (opcional).

## Exemplo para write\$1dynamic\$1frame
<a name="pyspark-WriteDynamicFrame-examples"></a>

Este exemplo grava a saída localmente usando um `connection_type` do S3 com um argumento de caminho POSIX em `connection_options`, o que permite gravar no armazenamento local.

```
glueContext.write_dynamic_frame.from_options(\
frame = dyf_splitFields,\
connection_options = {'path': '/home/glue/GlueLocalOutput/'},\
connection_type = 's3',\
format = 'json')
```