Clase DynamicFrame - AWS Glue

Clase DynamicFrame

Una de las principales abstracciones de Apache Spark es el DataFrame de SparkSQL, que es similar a la construcción DataFrame que se encuentra en R y en Pandas. Un elemento DataFrame es similar a una tabla y admite operaciones de estilo funcional (map/reduce/filter/etc.) y operaciones SQL (select, project, aggregate).

DataFrames son eficaces y de uso general, pero tienen limitaciones en las operaciones de extracción, transformación y carga (ETL). Más aún, es preciso especificar un esquema antes de cargar cualquier dato. SparkSQL aborda esta cuestión al repasar dos veces los datos: la primera para deducir el esquema y la segunda para cargar los datos. Sin embargo, esta deducción es limitada y no se ocupa de la realidad de los datos confusos. Por ejemplo, el mismo campo puede ser de un tipo diferente en diferentes registros. Apache Spark a menudo renuncia e informa del tipo como si fuera una string mediante el texto del campo original. Esto podría no ser correcto y puede que desee controlar mejor cómo se resuelven las discrepancias en el esquema. Y en cuanto a grandes conjuntos de datos, un paso adicional por los datos de origen podría tener un precio prohibitivo.

Para abordar estas limitaciones, AWS Glue introduce DynamicFrame. DynamicFrame es similar a DataFrame, salvo que cada registro se describe a sí mismo, por lo que no es preciso tener un esquema inicial. En su lugar, AWS Glue procesa un esquema sobre la marcha cuando es necesario y codifica explícitamente las incoherencias de esquema mediante un tipo de elección (o unión). Puede resolver estas incoherencias para que los conjuntos de datos pasen a ser compatibles con almacenes de datos que requieren un esquema fijo.

Asimismo, un DynamicRecord representa un registro lógico dentro de un DynamicFrame. Es como una fila en un DataFrame de Spark, salvo que es autodescriptivo y se puede utilizar para datos que no se ajustan a un esquema fijo.

Puede convertir DynamicFrames en DataFrames y viceversa, una vez que haya resuelto las incoherencias de esquema.

 — Construcción —

__init__

__init__(jdf, glue_ctx, name)

  • jdf: referencia a la trama de datos de la máquina virtual de Java (JVM).

  • glue_ctx: objeto Clase GlueContext.

  • name: cadena de nombre opcional, vacía de forma predeterminada.

fromDF

fromDF(dataframe, glue_ctx, name)

Convierte un DataFrame en un DynamicFrame al convertir campos de DataFrame en campos de DynamicRecord. Devuelve el nuevo DynamicFrame.

Un DynamicRecord representa un registro lógico en un DynamicFrame. Es similar a una fila en un DataFrame de Spark, salvo que es autodescriptivo y se puede utilizar para datos que no se ajustan a un esquema fijo.

  • dataframe: DataFrame de Apache Spark SQL que debe convertirse (obligatorio).

  • glue_ctx: objeto Clase GlueContext que especifica el contexto de esta transformación (obligatorio).

  • name: nombre del DynamicFrame resultante (obligatorio).

toDF

toDF(options)

Convierte un DynamicFrame en un DataFrame de Apache Spark convirtiendo campos de DynamicRecords en campos de DataFrame. Devuelve el nuevo DataFrame.

Un DynamicRecord representa un registro lógico en un DynamicFrame. Es similar a una fila en un DataFrame de Spark, salvo que es autodescriptivo y se puede utilizar para datos que no se ajustan a un esquema fijo.

  • options: lista de opciones. Especifique el tipo de destino si ha elegido el tipo de acción Project y Cast. Algunos ejemplos son los siguientes:

    >>>toDF([ResolveOption("a.b.c", "KeepAsStruct")]) >>>toDF([ResolveOption("a.b.c", "Project", DoubleType())])

 — Información —

count

count( ) – Devuelve el número de filas del subyacente DataFrame.

schema

schema( ) - Muestra el esquema de este DynamicFrame o en caso de que no esté disponible, el esquema del elemento DataFrame subyacente.

printSchema

printSchema( ) – Imprime el esquema del subyacente DataFrame.

show

show(num_rows) – Imprime un número especificado de filas del subyacente DataFrame.

repartition

repartition(numPartitions): devuelve un DynamicFrame nuevo con particiones numPartitions.

coalesce

coalesce(numPartitions): devuelve un DynamicFrame nuevo con particiones numPartitions.

 — Transformaciones —

apply_mapping

apply_mapping(mappings, transformation_ctx="", info="", stageThreshold=0, totalThreshold=0)

Aplica un mapeo declarativo a este DynamicFrame y devuelve un DynamicFrame nuevo con los mapeos aplicados.

  • mappings: lista de tuplas de mapeo, consistentes cada una en: (columna de origen, tipo de origen, columna de destino, tipo de destino). Obligatorio.

  • transformation_ctx: cadena única que se utiliza para identificar la información del estado (opcional).

  • info: cadena que se asociará a la notificación de errores para esta transformación (opcional).

  • stageThreshold: número de errores detectados durante este proceso de transformación que provocarán que el proceso se termine (opcional: cero de forma predeterminada, lo que indica que el proceso no debería terminarse por error).

  • totalThreshold: número de errores detectados hasta este proceso de transformación incluido que provocarán que el proceso se termine (opcional: cero de forma predeterminada, lo que indica que el proceso no debería terminarse por error).

drop_fields

drop_fields(paths, transformation_ctx="", info="", stageThreshold=0, totalThreshold=0)

Llama a la transformación Clase FlatMap para eliminar campos de un elemento DynamicFrame. Devuelve un DynamicFrame nuevo con los campos especificados anulados.

  • paths: lista de cadenas, cada una con la ruta completa a un nodo de campo que desee eliminar.

  • transformation_ctx: cadena única que se utiliza para identificar la información del estado (opcional).

  • info: cadena que se asociará a la notificación de errores para esta transformación (opcional).

  • stageThreshold: número de errores detectados durante este proceso de transformación que provocarán que el proceso se termine (opcional: cero de forma predeterminada, lo que indica que el proceso no debería terminarse por error).

  • totalThreshold: número de errores detectados hasta este proceso de transformación incluido que provocarán que el proceso se termine (opcional: cero de forma predeterminada, lo que indica que el proceso no debería terminarse por error).

filter

filter(f, transformation_ctx="", info="", stageThreshold=0, totalThreshold=0)

Devuelve un elemento DynamicFrame nuevo creado seleccionando todos los elementos DynamicRecords dentro de la entrada DynamicFrame que cumplen la función f de predicado especificada.

  • f – La función de predicado que debe aplicarse al elemento DynamicFrame. La función debe tomar un DynamicRecord como argumento y devolver True si DynamicRecord cumple los requisitos de filtro o False si no los cumple (obligatorio).

    Un DynamicRecord representa un registro lógico en un DynamicFrame. Es similar a una fila en un DataFrame de Spark, salvo que es autodescriptivo y se puede utilizar para datos que no se ajustan a un esquema fijo.

  • transformation_ctx: cadena única que se utiliza para identificar la información del estado (opcional).

  • info: cadena que se asociará a la notificación de errores para esta transformación (opcional).

  • stageThreshold: número de errores detectados durante este proceso de transformación que provocarán que el proceso se termine (opcional: cero de forma predeterminada, lo que indica que el proceso no debería terminarse por error).

  • totalThreshold: número de errores detectados hasta este proceso de transformación incluido que provocarán que el proceso se termine (opcional: cero de forma predeterminada, lo que indica que el proceso no debería terminarse por error).

Si desea ver un ejemplo sobre el uso de la transformación filter, consulte Clase de filtro.

join

join(paths1, paths2, frame2, transformation_ctx="", info="", stageThreshold=0, totalThreshold=0)

Realiza una unión de igualdad con otro elemento DynamicFrame y devuelve el elemento DynamicFrame resultante.

  • paths1: lista de las claves de esta trama que deben unirse.

  • paths2: lista de las claves de la otra trama que deben unirse.

  • frame2: el otro elemento DynamicFrame que debe unirse.

  • transformation_ctx: cadena única que se utiliza para identificar la información del estado (opcional).

  • info: cadena que se asociará a la notificación de errores para esta transformación (opcional).

  • stageThreshold: número de errores detectados durante este proceso de transformación que provocarán que el proceso se termine (opcional: cero de forma predeterminada, lo que indica que el proceso no debería terminarse por error).

  • totalThreshold: número de errores detectados hasta este proceso de transformación incluido que provocarán que el proceso se termine (opcional: cero de forma predeterminada, lo que indica que el proceso no debería terminarse por error).

map

map(f, transformation_ctx="", info="", stageThreshold=0, totalThreshold=0)

Devuelve un elemento DynamicFrame nuevo que se obtiene al aplicar la función de mapeo especificada a todos los registros del elemento DynamicFrame original.

  • f – La función de mapeo que se aplica a todos los registros del elemento DynamicFrame. La función debe tomar un elemento DynamicRecord como argumento y devolver un DynamicRecord nuevo (obligatorio).

    Un DynamicRecord representa un registro lógico en un DynamicFrame. Es similar a una fila en un DataFrame de Apache Spark, salvo que es autodescriptivo y se puede utilizar para datos que no se ajustan a un esquema fijo.

  • 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).

Si desea ver un ejemplo sobre el uso de la transformación map, consulte Clase Map.

mergeDynamicFrame

mergeDynamicFrame(stage_dynamic_frame, primary_keys, transformation_ctx = "", options = {}, info = "", stageThreshold = 0, totalThreshold = 0)

Combina este objeto DynamicFrame con una instancia provisional de DynamicFrame en función de las claves principales especificadas para identificar registros. Los registros duplicados (registros con las mismas claves principales) no se eliminan. Si no hay ningún registro que coincida en el marco provisional, se retienen todos los registros del origen (incluidos los duplicados). Si el marco provisional tiene registros coincidentes, estos sobrescriben a los registros del origen en AWS Glue.

  • stage_dynamic_frame: DynamicFrame provisional que se fusionará.

  • primary_keys: la lista de campos de clave principal para hacer coincidir los registros de los marcos dinámicos de origen y provisionales.

  • transformation_ctx: cadena única que se utiliza para recuperar metadatos sobre la transformación actual (opcional).

  • options: una cadena de pares de nombre-valor de JSON que proporcionan información adicional para esta transformación. Este argumento no se utiliza actualmente.

  • info – A String. Cualquier cadena que se va a asociar con los errores de esta transformación.

  • stageThreshold – A Long. Número de errores de la transformación especificada que provocarán que el proceso se termine.

  • totalThreshold – A Long. Número total de errores hasta esta transformación (incluida) que provocarán que el proceso se termine.

Devuelve un nuevo objeto DynamicFrame que se obtiene combinando esta instancia de DynamicFrame con la instancia de DynamicFrame provisional.

El objeto DynamicFrame devuelto contiene el registro A en estos casos:

  1. Si A existe tanto en el marco de origen como en el marco provisional, se devuelve A en el marco provisional.

  2. Si A está en la tabla de origen y A.primaryKeys no está en stagingDynamicFrame (significa que A no se actualiza en la tabla provisional).

No es necesario que el marco de origen y el marco provisional tengan el mismo esquema.

merged_frame = source_frame.mergeDynamicFrame(stage_frame, ["id"])

relationalize

relationalize(root_table_name, staging_path, options, transformation_ctx="", info="", stageThreshold=0, totalThreshold=0)

Relaciona un DynamicFrame produciendo una lista de tramas que se generan aplanando columnas anidadas y dinamizando columnas de matrices. La columna de matriz dinamizada se puede unir a la tabla raíz con la clave de combinación generada durante la fase de aplanamiento.

  • root_table_name: nombre de la tabla raíz.

  • staging_path: ruta en la que se almacenan las particiones de las tablas dinamizadas en formato CSV (opcional). Las tablas dinamizadas se leen desde esta ruta.

  • options: diccionario de parámetros opcionales.

  • transformation_ctx: cadena única que se utiliza para identificar la información del estado (opcional).

  • info: cadena que se asociará a la notificación de errores para esta transformación (opcional).

  • stageThreshold: número de errores detectados durante este proceso de transformación que provocarán que el proceso se termine (opcional: cero de forma predeterminada, lo que indica que el proceso no debería terminarse por error).

  • totalThreshold: número de errores detectados hasta este proceso de transformación incluido que provocarán que el proceso se termine (opcional: cero de forma predeterminada, lo que indica que el proceso no debería terminarse por error).

rename_field

rename_field(oldName, newName, transformation_ctx="", info="", stageThreshold=0, totalThreshold=0)

Cambia el nombre de un campo en este DynamicFrame y devuelve un DynamicFrame nuevo con el campo con el nombre nuevo.

  • oldName: la ruta completa al nodo cuyo nombre desea cambiar.

    Si el nombre antiguo tiene puntos, RenameField no funcionará a menos que lo ponga entre acentos graves (`). Por ejemplo, para reemplazar this.old.name por thisNewName, debería llamar a rename_field tal y como se indica a continuación:

    newDyF = oldDyF.rename_field("`this.old.name`", "thisNewName")
  • newName: el nombre nuevo, indicado como una ruta completa.

  • transformation_ctx: cadena única que se utiliza para identificar la información del estado (opcional).

  • info: cadena que se asociará a la notificación de errores para esta transformación (opcional).

  • stageThreshold: número de errores detectados durante este proceso de transformación que provocarán que el proceso se termine (opcional: cero de forma predeterminada, lo que indica que el proceso no debería terminarse por error).

  • totalThreshold: número de errores detectados hasta este proceso de transformación incluido que provocarán que el proceso se termine (opcional: cero de forma predeterminada, lo que indica que el proceso no debería terminarse por error).

resolveChoice

resolveChoice(specs = None, choice = "" , database = None , table_name = None , transformation_ctx="", info="", stageThreshold=0, totalThreshold=0, catalog_id = None)

Resuelve un tipo de elección dentro de este elemento DynamicFrame y devuelve el DynamicFrame nuevo.

  • specs – Una lista de ambigüedades concretas que deben resolverse; cada una en forma de tupla: (field_path, action).

    Hay dos formas de usar resolveChoice. La primera consiste en utilizar el argumento specs para especificar una secuencia de campos específicos y cómo resolverlos. El otro modo de resolveChoice es utilizar el argumento choice para especificar una resolución única para todos los ChoiceTypes.

    Valores de specs se especifican como tuplas compuestas de pares (field_path, action). El valor de field_path identifica un elemento ambiguo concreto, mientras que el valor de action identifica la resolución correspondiente. Los posibles valores son los siguientes:

    • cast:type: intenta convertir todos los valores al tipo especificado. Por ejemplo, cast:int.

    • make_cols – convierte cada tipo diferenciado en una columna con el nombre columnName_type. Resuelve una posible ambigüedad al aplanar los datos. Por ejemplo, si columnA puede ser tanto un int como una string, la resolución puede consistir en producir dos columnas llamadas columnA_int y columnA_string en el elemento DynamicFrame resultante.

    • make_struct: resuelve una posible ambigüedad al utilizar una struct 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:type: resuelve una posible ambigüedad al proyectar todos los datos a uno de los tipos de datos posibles. Por ejemplo, si los datos de una columna pueden ser tanto un int como una string, ejecutar la acción project:string genera una columna en el elemento DynamicFrame resultante, en la que todos los valores int se han convertido en cadenas.

    Si en field_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 field_path en "myList[].price" y action en "cast:double".

    nota

    Solo se puede utilizar el parámetro specs o el parámetro choice. Si el parámetro specs 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 specs tiene que ser None.

  • choice: especifica una resolución única para todos los ChoiceTypes. Se puede utilizar en los casos en los que se desconozca la lista completa de ChoiceTypes antes de la ejecución. Además de las acciones enumeradas anteriormente para specs, este argumento también soporta 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 de Data Catalog que se usará con la acción match_catalog.

  • table_name: la tabla de Data Catalog que se usará con la acción match_catalog.

  • transformation_ctx: cadena única que se utiliza para identificar la información del estado (opcional).

  • info: cadena que se asociará a la notificación de errores para esta transformación (opcional).

  • stageThreshold: número de errores detectados durante este proceso de transformación que provocarán que el proceso se termine (opcional: cero de forma predeterminada, lo que indica que el proceso no debería terminarse por error).

  • totalThreshold: número de errores detectados hasta este proceso de transformación incluido que provocarán que el proceso se termine (opcional: cero de forma predeterminada, lo que indica que el proceso no debería terminarse por error).

  • catalog_id: el ID de catálogo de Data Catalog al que se accede (el ID de cuenta de Data Catalog). Cuando se establece en None (valor predeterminado), utiliza el ID de catálogo de la cuenta que hace la llamada.

df1 = df.resolveChoice(choice = "make_cols") df2 = df.resolveChoice(specs = [("myList[].price", "make_struct"), ("columnA", "cast:double")])

select_fields

select_fields(paths, transformation_ctx="", info="", stageThreshold=0, totalThreshold=0)

Muestra un elemento DynamicFrame nuevo que contiene los campos seleccionados.

  • paths: lista de cadenas, cada una de las cuales es una ruta a un nodo de nivel superior que se desea seleccionar.

  • transformation_ctx: cadena única que se utiliza para identificar la información del estado (opcional).

  • info: cadena que se asociará a la notificación de errores para esta transformación (opcional).

  • stageThreshold: número de errores detectados durante este proceso de transformación que provocarán que el proceso se termine (opcional: cero de forma predeterminada, lo que indica que el proceso no debería terminarse por error).

  • totalThreshold: número de errores detectados hasta este proceso de transformación incluido que provocarán que el proceso se termine (opcional: cero de forma predeterminada, lo que indica que el proceso no debería terminarse por error).

spigot

spigot(path, options={})

Escribe registros de muestra en un destino especificado durante una transformación y devuelve la entrada DynamicFrame con un paso de escritura adicional.

  • path: la ruta al destino en el que se escribirá (obligatorio).

  • options: pares valor-clave que especifican opciones (opcional). La opción "topk" especifica que deben escribirse los primeros registros k. La opción "prob" especifica la probabilidad (como decimal) de seleccionar cualquier registro para usarlo para seleccionar registros para escribir.

  • transformation_ctx: cadena única que se utiliza para identificar la información del estado (opcional).

split_fields

split_fields(paths, name1, name2, transformation_ctx="", info="", stageThreshold=0, totalThreshold=0)

Devuelve un elemento DynamicFrameCollection nuevo que contiene dos DynamicFrames: el primero contiene todos los nodos que se han dividido y el segundo contiene los nodos que quedan.

  • paths – Una lista de cadenas, cada una de las cuales es una ruta completa a un nodo que se desea dividir en un elemento nuevo DynamicFrame.

  • name1: cadena de nombre para el DynamicFrame que se divide.

  • name2: cadena de nombre para el elemento DynamicFrame que queda después de que se hayan dividido los nodos especificados.

  • transformation_ctx: cadena única que se utiliza para identificar la información del estado (opcional).

  • info: cadena que se asociará a la notificación de errores para esta transformación (opcional).

  • stageThreshold: número de errores detectados durante este proceso de transformación que provocarán que el proceso se termine (opcional: cero de forma predeterminada, lo que indica que el proceso no debería terminarse por error).

  • totalThreshold: número de errores detectados hasta este proceso de transformación incluido que provocarán que el proceso se termine (opcional: cero de forma predeterminada, lo que indica que el proceso no debería terminarse por error).

split_rows

Divide una o más filas de un DynamicFrame en un nuevo DynamicFrame.

split_rows(comparison_dict, name1, name2, transformation_ctx="", info="", stageThreshold=0, totalThreshold=0)

Devuelve un elemento DynamicFrameCollection nuevo que contiene dos DynamicFrames: el primero contiene todas las filas que se han dividido y el segundo contiene las filas que quedan.

  • comparison_dict: diccionario donde la clave es una ruta a una columna y el valor es otro diccionario que mapea comparadores con valores con los que se compara el valor de columna. Por ejemplo, {"age": {">": 10, "<": 20}} divide todas las filas cuyo valor en la columna antigüedad sea superior a 10 e inferior a 20.

  • name1: cadena de nombre para el DynamicFrame que se divide.

  • name2: cadena de nombre para el elemento DynamicFrame que queda después de que se hayan dividido los nodos especificados.

  • transformation_ctx: cadena única que se utiliza para identificar la información del estado (opcional).

  • info: cadena que se asociará a la notificación de errores para esta transformación (opcional).

  • stageThreshold: número de errores detectados durante este proceso de transformación que provocarán que el proceso se termine (opcional: cero de forma predeterminada, lo que indica que el proceso no debería terminarse por error).

  • totalThreshold: número de errores detectados hasta este proceso de transformación incluido que provocarán que el proceso se termine (opcional: cero de forma predeterminada, lo que indica que el proceso no debería terminarse por error).

unbox

unbox(path, format, transformation_ctx="", info="", stageThreshold=0, totalThreshold=0, **options)

Realiza la conversión unboxing de un campo de cadena en un elemento DynamicFrame y devuelve un elemento DynamicFrame nuevo que contiene el elemento DynamicRecords de conversión unboxing.

Un DynamicRecord representa un registro lógico en un DynamicFrame. Es similar a una fila en un DataFrame de Apache Spark, salvo que es autodescriptivo y se puede utilizar para datos que no se ajustan a un esquema fijo.

  • path: ruta completa al nodo de cadena a cuyo nombre se desea aplicar la conversión unboxing.

  • format: una especificación de formato (opcional). Se utiliza para Amazon Simple Storage Service (Amazon S3) o una conexión de AWS Glue que admite diversos formatos. Consulte en Opciones de formato para las entradas y salidas de ETL en AWS Glue los formatos que se admiten.

  • transformation_ctx: cadena única que se utiliza para identificar la información del estado (opcional).

  • info: cadena que se asociará a la notificación de errores para esta transformación (opcional).

  • stageThreshold: número de errores detectados durante este proceso de transformación que provocarán que el proceso se termine (opcional: cero de forma predeterminada, lo que indica que el proceso no debería terminarse por error).

  • totalThreshold: número de errores detectados hasta este proceso de transformación incluido que provocarán que el proceso se termine (opcional: cero de forma predeterminada, lo que indica que el proceso no debería terminarse por error).

  • options: una o varias de las siguientes:

    • separator: cadena que contiene el carácter separador.

    • escaper: cadena que contiene el carácter de escape.

    • skipFirst: valor booleano que indica si debe omitirse la primera instancia.

    • withSchema – Debe llamarse a la cadena que contiene el esquema con StructType.json( ).

    • withHeader: valor booleano que indica si se incluye un encabezado.

Por ejemplo: unbox("a.b.c", "csv", separator="|")

unnest

Aplana los objetos anidados de un elemento DynamicFrame, los convierte en objetos de nivel superior y devuelve un elemento DynamicFrame aplanado nuevo.

unnest(transformation_ctx="", info="", stageThreshold=0, totalThreshold=0)

Aplana los objetos anidados de un elemento DynamicFrame, los convierte en objetos de nivel superior y devuelve un elemento DynamicFrame aplanado nuevo.

  • transformation_ctx: cadena única que se utiliza para identificar la información del estado (opcional).

  • info: cadena que se asociará a la notificación de errores para esta transformación (opcional).

  • stageThreshold: número de errores detectados durante este proceso de transformación que provocarán que el proceso se termine (opcional: cero de forma predeterminada, lo que indica que el proceso no debería terminarse por error).

  • totalThreshold: número de errores detectados hasta este proceso de transformación incluido que provocarán que el proceso se termine (opcional: cero de forma predeterminada, lo que indica que el proceso no debería terminarse por error).

Por ejemplo: unnest( )

write

write(connection_type, connection_options, format, format_options, accumulator_size)

Obtiene un DataSink(object) del tipo de conexión especificado del Clase GlueContext de este elemento DynamicFrame y lo utiliza para escribir y dar formato al contenido de este DynamicFrame. Devuelve el nuevo DynamicFrame con formato y escrito tal y como se especifica.

  • connection_type: tipo de conexión que se utilizará. Entre los valores válidos se incluyen: s3, mysql, postgresql, redshift, sqlserver y oracle.

  • connection_options: opción de conexión que se utilizará (opcional). Para un connection_type de s3, se define una ruta de Amazon S3.

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

    Para conexiones JDBC, deben definirse varias propiedades. Tenga en cuenta que el nombre de la base de datos debe ser parte de la URL. Opcionalmente, se puede incluir en las opciones de conexión.

    connection_options = {"url": "jdbc-url/database", "user": "username", "password": "password","dbtable": "table-name", "redshiftTmpDir": "s3-tempdir-path"}
  • format: una especificación de formato (opcional). Se utiliza para Amazon Simple Storage Service (Amazon S3) o una conexión de AWS Glue que admite diversos formatos. Consulte en Opciones de formato para las entradas y salidas de ETL en AWS Glue los formatos que se admiten.

  • format_options: opciones del formato especificado. Consulte en Opciones de formato para las entradas y salidas de ETL en AWS Glue los formatos que se admiten.

  • accumulator_size: tamaño acumulable que se utilizará (opcional).

 — Errores —

assertErrorThreshold

assertErrorThreshold( ) – Una afirmación para errores en las transformaciones que crearon este elemento DynamicFrame. Muestra un valor de Exception desde el DataFrame subyacente.

errorsAsDynamicFrame

errorsAsDynamicFrame( ): devuelve un DynamicFrame con registros de error anidados dentro.

errorsCount

errorsCount( ) – Devuelve el número total de errores de un DynamicFrame.

stageErrorsCount

stageErrorsCount – Devuelve el número de errores que se produjo en el proceso de generar este DynamicFrame.