

# Classe ResolveChoice
<a name="aws-glue-api-crawler-pyspark-transforms-ResolveChoice"></a>

Resolve um tipo de escolha dentro de um `DynamicFrame`.

## Exemplo
<a name="pyspark-ResolveChoice-example"></a>

Recomendamos usar o método [`DynamicFrame.resolveChoice()`](aws-glue-api-crawler-pyspark-extensions-dynamic-frame.md#aws-glue-api-crawler-pyspark-extensions-dynamic-frame-resolveChoice) para lidar com campos que contêm vários tipos em um `DynamicFrame`. Para visualizar um código de exemplo, consulte [Exemplo: usar resolveChoice para lidar com uma coluna que contém vários tipos](aws-glue-api-crawler-pyspark-extensions-dynamic-frame.md#pyspark-resolveChoice-example).

## Métodos
<a name="aws-glue-api-crawler-pyspark-transforms-ResolveChoice-_methods"></a>
+ [\_\_call\_\_](#aws-glue-api-crawler-pyspark-transforms-ResolveChoice-__call__)
+ [apply](#aws-glue-api-crawler-pyspark-transforms-ResolveChoice-apply)
+ [name](#aws-glue-api-crawler-pyspark-transforms-ResolveChoice-name)
+ [describeArgs](#aws-glue-api-crawler-pyspark-transforms-ResolveChoice-describeArgs)
+ [describeReturn](#aws-glue-api-crawler-pyspark-transforms-ResolveChoice-describeReturn)
+ [describeTransform](#aws-glue-api-crawler-pyspark-transforms-ResolveChoice-describeTransform)
+ [describeErrors](#aws-glue-api-crawler-pyspark-transforms-ResolveChoice-describeErrors)
+ [describe](#aws-glue-api-crawler-pyspark-transforms-ResolveChoice-describe)

## \_\_call\_\_(frame, specs = none, choice = "", transformation\_ctx = "", info = "", stageThreshold = 0, totalThreshold = 0)
<a name="aws-glue-api-crawler-pyspark-transforms-ResolveChoice-__call__"></a>

Fornece informações para resolver tipos ambíguos dentro de um `DynamicFrame`. Retorna o `DynamicFrame` resultante.
+ `frame` – O `DynamicFrame` no qual o tipo de escolha será resolvido (obrigatório).
+ `specs`: uma lista de ambiguidades específicas para resolver, cada uma na forma de uma tupla: `(path, action)`. O valor `path` identifica um elemento ambíguo específico, e o valor `action` identifica a resolução correspondente. 

  É possível usar somente um dos parâmetros `spec` e `choice`. Se o parâmetro `spec` não for `None`, o parâmetro `choice` precisará ser uma string vazia. Por outro lado, se o `choice` não for uma string vazia, o parâmetro `spec` precisará ser `None`. Se nenhum dos parâmetros for fornecido, o AWS Glue tentará analisar o esquema e usá-lo para resolver ambiguidades. 

  É possível especificar uma das seguintes estratégias de resolução na porção `action` de uma tupla `specs`:
  + `cast`: permite especificar um tipo a ser convertido (por exemplo: `cast:int`).
  + `make_cols`: resolve uma possível ambiguidade ao nivelar os dados. Por exemplo, se `columnA` puder ser `int` ou `string`, a resolução é produzir duas colunas chamadas `columnA_int` e `columnA_string` no `DynamicFrame` resultante.
  + `make_struct`: resolve uma ambiguidade em potencial usando um struct para representar os dados. Por exemplo, se os dados em uma coluna pudessem ser um `int` ou `string`, usar a ação `make_struct` produzirá uma coluna de estruturas no `DynamicFrame` resultante, com cada uma contendo `int` e `string`.
  + `project`: resolve uma possível ambiguidade retendo somente valores de um tipo especificado no `DynamicFrame` resultante Por exemplo, se os dados em uma coluna `ChoiceType` pudessem ser um `int` ou uma `string`, especificar uma ação `project:string` descartaria valores do `DynamicFrame` resultante que não fossem do tipo `string`. 

  Se o `path` identifica um array, insira colchetes vazios após o nome do array para evitar ambiguidades. Por exemplo, vamos supor que você esteja trabalhando com dados estruturados da seguinte maneira:

  ```
  "myList": [
    { "price": 100.00 },
    { "price": "$100.00" }
  ]
  ```

  Você pode selecionar a versão numérica em vez da versão string do preço definindo `path` como `"myList[].price"` e `action` como `"cast:double"`.
+ `choice`: a ação de resolução padrão se o parâmetro `specs` for `None`. Se o parâmetro `specs` não for `None`, isso deve ser configurado como uma string vazia.

  Além das ações `specs` listadas anteriormente, este modo também aceita a seguinte ação:
  + `MATCH_CATALOG``ChoiceType`: tenta converter cada para o tipo correspondente na tabela do Data Catalog especificada.
+ `database`: o banco de dados do AWS Glue Data Catalog a ser usado com a escolha `MATCH_CATALOG` (obrigatório para `MATCH_CATALOG`).
+ `table_name`: o nome da tabela do AWS Glue Data Catalog a ser usado com a ação `MATCH_CATALOG` (obrigatório para `MATCH_CATALOG`).
+ `transformation_ctx` – Uma string única que é usada para identificar informações de estado (opcional).
+ `info` – Uma string associada a erros na transformação (opcional).
+ `stageThreshold`: o número máximo de erros que podem ocorrer na transformação antes que ela falhe (opcional). O padrão é zero.
+ `totalThreshold`: o número máximo de erros que podem ocorrer em geral antes que falhe (opcional). O padrão é zero.

## aplicar(cls, \*args, \*\*kwargs)
<a name="aws-glue-api-crawler-pyspark-transforms-ResolveChoice-apply"></a>

Herdado de `GlueTransform` [apply](aws-glue-api-crawler-pyspark-transforms-GlueTransform.md#aws-glue-api-crawler-pyspark-transforms-GlueTransform-apply).

## name(cls)
<a name="aws-glue-api-crawler-pyspark-transforms-ResolveChoice-name"></a>

Herdado de `GlueTransform` [nome](aws-glue-api-crawler-pyspark-transforms-GlueTransform.md#aws-glue-api-crawler-pyspark-transforms-GlueTransform-name).

## describeArgs(cls)
<a name="aws-glue-api-crawler-pyspark-transforms-ResolveChoice-describeArgs"></a>

Herdado de `GlueTransform` [describeArgs](aws-glue-api-crawler-pyspark-transforms-GlueTransform.md#aws-glue-api-crawler-pyspark-transforms-GlueTransform-describeArgs).

## describeReturn(cls)
<a name="aws-glue-api-crawler-pyspark-transforms-ResolveChoice-describeReturn"></a>

Herdado de `GlueTransform` [describeReturn](aws-glue-api-crawler-pyspark-transforms-GlueTransform.md#aws-glue-api-crawler-pyspark-transforms-GlueTransform-describeReturn).

## describeTransform(cls)
<a name="aws-glue-api-crawler-pyspark-transforms-ResolveChoice-describeTransform"></a>

Herdado de `GlueTransform` [describeTransform](aws-glue-api-crawler-pyspark-transforms-GlueTransform.md#aws-glue-api-crawler-pyspark-transforms-GlueTransform-describeTransform).

## describeErrors(cls)
<a name="aws-glue-api-crawler-pyspark-transforms-ResolveChoice-describeErrors"></a>

Herdado de `GlueTransform` [describeErrors](aws-glue-api-crawler-pyspark-transforms-GlueTransform.md#aws-glue-api-crawler-pyspark-transforms-GlueTransform-describeErrors).

## describe(cls)
<a name="aws-glue-api-crawler-pyspark-transforms-ResolveChoice-describe"></a>

Herdado de `GlueTransform` [describe](aws-glue-api-crawler-pyspark-transforms-GlueTransform.md#aws-glue-api-crawler-pyspark-transforms-GlueTransform-describe).