

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

Resuelve un tipo de elección dentro de un elemento `DynamicFrame`.

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

Se recomienda utilizar el método [`DynamicFrame.resolveChoice()`](aws-glue-api-crawler-pyspark-extensions-dynamic-frame.md#aws-glue-api-crawler-pyspark-extensions-dynamic-frame-resolveChoice) para gestionar los campos que contienen varios tipos en un `DynamicFrame`. Para ver un ejemplo de código, consulte [Ejemplo: utilice resolveChoice para gestionar una columna que contiene varios 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>
+ [\$1\$1call\$1\$1](#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)

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

Proporciona información para resolver tipos ambiguos dentro de un elemento `DynamicFrame`. Devuelve el elemento `DynamicFrame` resultante.
+ `frame`: el elemento `DynamicFrame` en el que debe resolverse el tipo de elección (obligatorio).
+ `specs`: lista de ambigüedades concretas que deben resolverse; cada una en forma de tupla: `(path, action)`. El valor de `path` identifica un elemento ambiguo concreto, mientras que el valor de `action` identifica la resolución correspondiente. 

  Solo se puede utilizar el parámetro `spec` y el parámetro `choice`. Si el parámetro `spec` no es `None`, el parámetro `choice` tiene que ser una cadena vacía. Y viceversa, si el parámetro `choice` no es una cadena vacía, el parámetro `spec` tiene que ser `None`. Si no se proporciona ninguno de estos parámetros, AWS Glue intenta analizar el esquema y utilizarlo para resolver ambigüedades. 

  Puede especificar una de las cuatro estrategias de resolución en la parte `action` de una tupla `specs`:
  + `cast`: le permite especificar el tipo al que se realizará una conversión (por ejemplo, `cast:int`).
  + `make_cols`: resuelve una posible ambigüedad al aplanar los datos. Por ejemplo, si `columnA` puede ser tanto un `int` como una `string`, la resolución consiste en producir dos columnas llamadas `columnA_int` y `columnA_string` en el elemento `DynamicFrame` resultante.
  + `make_struct`: resuelve una posible ambigüedad con una estructura para representar los datos. Por ejemplo, si los datos de una columna pueden ser tanto un `int` como una `string`, si usa la acción `make_struct` generará una columna de estructuras en el elemento `DynamicFrame` resultante, en la que cada estructura contendrá un `int` y una `string`.
  + `project`: resuelve una posible ambigüedad conservando solo los valores de un tipo especificado en el `DynamicFrame` resultante. Por ejemplo, si los datos de una columna `ChoiceType` pueden ser un `int` o una `string`, al especificar una acción `project:string` se descartan los valores del `DynamicFrame` que no son del tipo `string`. 

  Si en `path` se identifica una matriz, incluya corchetes vacíos después del nombre de la matriz para evitar ambigüedades. Por ejemplo, suponga que está trabajando con datos estructurados tal y como se indica a continuación:

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

  Puede seleccionar la versión numérica en vez de la de cadena del precio si configura `path` en `"myList[].price"` y `action` en `"cast:double"`.
+ `choice`: la acción de resolución predeterminada si el parámetro `specs` es `None`. Si el parámetro `specs` no es `None`, este parámetro no tiene que establecerse en nada, sino que debe dejarse como una cadena vacía.

  Además de las acciones descritas anteriormente para `specs`, este argumento también admite la siguiente acción:
  + `MATCH_CATALOG`: intenta convertir cada `ChoiceType` al tipo correspondiente en la tabla de Data Catalog especificada.
+ `database`: la base de datos del catálogo de datos de AWS Glue que se utilizará con la elección `MATCH_CATALOG` (obligatoria para `MATCH_CATALOG`).
+ `table_name`: el nombre de la tabla del catálogo de datos de AWS Glue que se utilizará con la elección `MATCH_CATALOG` (obligatoria para `MATCH_CATALOG`).
+ `transformation_ctx`: cadena única que se utiliza para identificar la información del estado (opcional).
+ `info`: cadena que está asociada a errores en la transformación (opcional).
+ `stageThreshold`: cantidad máxima de errores que se puede producir en la transformación antes de que se determine que es errónea (opcional). El rol predeterminado es cero.
+ `totalThreshold`: cantidad máxima de errores que se pueden producir en total antes de que se determine que el proceso es erróneo (opcional). El rol predeterminado es cero.

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

Heredado 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>

Heredado de `GlueTransform` [nombre](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>

Heredado 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>

Heredado 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>

Heredado 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>

Heredado 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>

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