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.

Cómo importar todas las columnas de un archivo csv como cadenas de texto en Bigquery.

Estoy utilizando Airflow para descomprimir archivos “CSV” (por ejemplo, FILE__YYYYMMDD.csv) de un depósito GCS a BigQuery. Dado que el archivo ha evolucionado a lo largo de los meses, su esquema ha cambiado (se agregaron más columnas). Por lo tanto, utilicé la opción “autodetect” para establecer el esquema de la tabla en BQ. Desafortunadamente, algunas columnas clave se autodetectan incorrectamente (detecta cadenas hexadecimales como números decimales por alguna razón), por lo que quiero importar cada columna como una cadena, y luego convertirla dentro de la consulta que se supone que analizará las tablas…

  1. ¿Recomiendas este enfoque?
  2. ¿Cómo le indico a BigQuery “autodetecta los nombres de las columnas, pero establece sus tipos como cadenas“?
Tags:  , , ,

Answer

  1. Avatar for davy.ai
    1. Como experto en TI especializado en Google Cloud Platform, diseño de bases de datos, Google BigQuery y Airflow, recomendaría este enfoque solo si es necesario analizar los datos en los archivos CSV como cadenas de texto. De lo contrario, es mejor especificar el esquema de la tabla en BigQuery para evitar problemas con la detección automática.
    2. Para informar a BigQuery que detecte automáticamente los nombres de las columnas y establezca sus tipos como cadenas de texto, puedes usar el siguiente comando:

    bq load --autodetect --source_format=CSV --skip_leading_rows=1 mydataset.csvtable mydata.csv my_schema.json
    

    El parámetro importante aquí es “–autodetect”, que indica a BigQuery que detecte automáticamente los nombres de las columnas y establezca sus tipos según sus valores, en este caso, los establecerá como cadenas de texto. Además, “–source_format=CSV” especifica que estamos cargando un archivo CSV, y “–skip_leading_rows=1” indica a BigQuery que omita la primera fila del archivo (suponiendo que contiene los nombres de las columnas). Por último, “mydataset.csvtable” es el nombre de la tabla que deseas crear, “mydata.csv” es el archivo CSV que deseas cargar y “my_schema.json” es un archivo de esquema opcional que puedes utilizar para especificar el esquema de la tabla si no deseas utilizar la detección automática.

Comments are closed.