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…
- ¿Recomiendas este enfoque?
- ¿Cómo le indico a BigQuery “autodetecta los nombres de las columnas, pero establece sus tipos como cadenas“?
davy.ai
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:
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.