Clase ResolveChoice - AWS Glue

Clase ResolveChoice

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

Methods

__call__(frame, specs = None, choice = "", transformation_ctx = "", info = "", stageThreshold = 0, totalThreshold = 0)

Proporciona información para resolver tipos ambiguos dentro de un elemento DynamicFrame. Devuelve el elemento resultante DynamicFrame.

  • frame: el elemento DynamicFrame en el que debe resolverse el tipo de elección (obligatorio).

  • specs – Una 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 o 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.

    La parte action de una tupla specs puede especificar una de las cuatro estrategias de resolución:

    • cast:  le permite especificar el tipo al que se realizará una conversión (por ejemplo, cast:int).

    • make_cols: resuelve una ambigüedad en potencia aplanando 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 ambigüedad en potencia utilizando 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 resultante DynamicFrame. Por ejemplo, si los datos de una columna ChoiceType pueden ser int o 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.

  • 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: número máximo de errores que se pueden producir en la transformación antes de que se determine que es errónea (opcional, el valor predeterminado es cero).

  • totalThreshold: número máximo de errores que se pueden producir en total antes de que se determine que el proceso es erróneo (opcional, el valor predeterminado es cero).

Devuelve un elemento DynamicFrame con la elección resuelta.

df1 = ResolveChoice.apply(df, choice = "make_cols") df2 = ResolveChoice.apply(df, specs = [("a.b", "make_struct"), ("c.d", "cast:double")])

apply(cls, *args, **kwargs)

Heredado de GlueTransform apply.

name(cls)

Heredado de GlueTransform name.

describeArgs(cls)

Heredado de GlueTransform describeArgs.

describeReturn(cls)

Heredado de GlueTransform describeReturn.

describeTransform(cls)

Heredado de GlueTransform describeTransform.

describeErrors(cls)

Heredado de GlueTransform describeErrors.

describe(cls)

Heredado de GlueTransform describe.

Ejemplo de ResolveChoice

En este ejemplo se muestra cómo manejar las ambigüedades de tipo de columna mediante la conversión de todos los valores en el campo cust_id al tipo de datos String.

dyf_resolveChoice = dyf_input.resolveChoice(specs = [('cust_id','cast:String')])