es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

El operador de BigQuery no realiza la detección automática.

El operador BigQueryOperator no hace la detección automática.
El nombre de la columna se convierte en string_field_*.

Cuando lo ejecuto en la consola de Bigquery, funciona, pero cuando intento ejecutarlo en Cloud Composer, no funciona.

python
load_events = gcs_to_bq.GoogleCloudStorageToBigQueryOperator(
task_id='load_events',
bucket='*****',
write_disposition='WRITE_TRUNCATE',
source_objects=['****.csv'],
destination_project_dataset_table='****.****',
source_format='CSV',
autodetect=True
)

¿Por favor, dime qué debo hacer?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Dado que BigQueryOperator no admite la detección automática de esquemas, se recomienda que defina manualmente el esquema para sus archivos CSV. De lo contrario, es posible que se encuentre con el problema de que los nombres de las columnas se conviertan en string_field_* cuando ejecute el operador en Cloud Composer.

    Para definir manualmente el esquema para sus archivos CSV, puede utilizar la clase SchemaField del módulo google.cloud.bigquery.schema.

    Aquí tienes un ejemplo de cómo puedes definir el esquema para tu archivo CSV:

    from google.cloud.bigquery.schema import SchemaField
    
    SCHEMA = [
        SchemaField('nombre_columna_1', 'STRING'),
        SchemaField('nombre_columna_2', 'INTEGER'),
        # agregar más campos según sea necesario
    ]
    
    load_events = BigQueryOperator(
        task_id='load_events',
        sql='SELECT 1',
        destination_dataset_table='tu-proyecto:tu-dataset.tu-tabla',
        write_disposition='WRITE_TRUNCATE',
        schema_fields=SCHEMA,
        source_format='CSV',
        skip_leading_rows=1,
        autodetect=False,
        bigquery_conn_id='tu_bigquery_conn_id',
        google_cloud_storage_conn_id='tu_gcs_conn_id'
    )
    

    Asegúrate de reemplazar los valores de destination_dataset_table, bigquery_conn_id y google_cloud_storage_conn_id con la información correcta para tu entorno.

    Al definir manualmente el esquema, el BigQueryOperator podrá cargar correctamente los datos de tu archivo CSV en BigQuery sin encontrar problemas con los nombres de las columnas.

Comments are closed.