Clase DynamicFrameReader - AWS Glue

Clase DynamicFrameReader

 — Métodos —

__init__

__init__(glue_context)

from_rdd

from_rdd(data, name, schema=None, sampleRatio=None)

Lee un DynamicFrame en un conjunto de datos distribuido resistente (RDD).

  • data: el conjunto de datos que se leerá.

  • name: el nombre donde se efectuará la lectura.

  • schema: el esquema que se leerá (opcional).

  • sampleRatio: el ratio de muestra (opcional).

from_options

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

Lee un DynamicFrame utilizando la conexión y el formato especificados.

  • connection_type: el tipo de conexión. Los valores válidos son s3, mysql, postgresql, redshift, sqlserver, oracle y dynamodb.

  • connection_options: opciones de conexión, como la tabla de rutas y bases de datos (opcional). Para un connection_type de s3, se definen las rutas de Amazon S3 en una matriz.

    connection_options = {"paths": [ "s3://mybucket/object_a", "s3://mybucket/object_b"]}

    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"}

    Para una conexión JDBC que realiza lecturas en paralelo, puede establecer la opción hashfield. Por ejemplo:

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

    Para obtener más información, consulte Lectura desde tablas de JDBC en paralelo.

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

  • transformation_ctx: contexto de transformación que se va a utilizar (opcional).

  • push_down_predicate: filtra particiones sin tener que enumerar y leer todos los archivos del conjunto de datos. Para obtener más información, consulte Filtrado previo con predicados de inserción.

from_catalog

from_catalog(name_space, table_name, redshift_tmp_dir="", transformation_ctx="", push_down_predicate="", additional_options={})

Lee un DynamicFrame utilizando el espacio de nombres del catálogo y un nombre de tabla.

  • name_space: la base de datos de lectura.

  • table_name: nombre de la tabla de lectura.

  • redshift_tmp_dir: un directorio de Amazon Redshift provisorio que se usará (opcional si no se leen datos de Redshift).

  • transformation_ctx: contexto de transformación que se va a utilizar (opcional).

  • push_down_predicate: filtra particiones sin tener que enumerar y leer todos los archivos del conjunto de datos. Para obtener más información, consulte Filtrado previo con predicados de inserción.

  • additional_options – Opciones adicionales para AWS Glue.

    • Para usar una conexión JDBC que realiza lecturas en paralelo, puede establecer las opciones hashfield, hashexpression o hashpartitions. Por ejemplo:

      additional_options = {"hashfield": "month"}

      Para obtener más información, consulte Lectura desde tablas de JDBC en paralelo.

    • Para transferir una expresión de catálogo para filtrar en función de las columnas de índice, puede ver la opción catalogPartitionPredicate.

      catalogPartitionPredicate: puede transferir una expresión de catálogo para filtrar en función de las columnas de índice. Esto inserta el filtrado hacia el lado del servidor. Para obtener más información, consulte Índices de partición de AWS Glue. Tenga en cuenta que push_down_predicate y catalogPartitionPredicate utilizan sintaxis diferentes. El primero utiliza la sintaxis estándar de Spark SQL y el segundo utiliza el analizador JSQL.

      Para obtener más información, consulte Administración de particiones para la salida de ETL en AWS Glue.

    • Para leer desde tablas regidas por Lake Formation, puede utilizar estas opciones adicionales:

      • transactionId (cadena): ID de transacción en el que se debe leer el contenido de la tabla regida. Si esta transacción no está confirmada, la lectura se tratará como parte de esa transacción y verá sus escrituras. Si esta transacción está confirmada, sus escrituras serán visibles en esta lectura. Si esta transacción está anulada, se devolverá un error. No se puede especificar junto con asOfTime.

        nota

        No deben estar configurados transactionId ni asOfTime para acceder a la tabla regida.

      • asOfTime (TimeStamp: yyyy-[m]m-[d]d hh:mm:ss): la hora a partir de la cual se debe leer el contenido de la tabla. No se puede especificar junto con transactionId.

      • query (opcional): una instrucción de consulta de PartiQL utilizada como entrada para el servicio de planificador de Lake Formation. Si no se establece en ningún valor, la configuración predeterminada es seleccionar todos los datos de la tabla. Para obtener más detalles acerca de PartiQL, consulte Soporte de PartiQL en expresiones de filtro de filas en la Guía para desarrolladores de AWS Lake Formation.

      ejemplo Ejemplo: uso de una instrucción de consulta de PartiQL al leer desde una tabla regida en Lake Formation.

      txId = glueContext.start_transaction(read_only=False) datasource0 = glueContext.create_dynamic_frame.from_catalog( database = db, table_name = tbl, transformation_ctx = "datasource0", additional_options={ "transactionId":txId, "query":"SELECT * from tblName WHERE partitionKey=value;" }) ... glueContext.commit_transaction(txId)