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.

Problema de valor en el tipo de dato Float en BigQuery, al cargar datos desde AVRO y parquet en tablas de BigQuery.

Me encuentro con un problema extraño al cargar datos desde archivos AVRO/Parquet en BigQuery utilizando el trabajo de carga bq o mediante un dataframe de apache-spark.

Los archivos de origen tienen un tipo de dato float con el valor 22.54, pero después de cargarlo en BigQuery, automáticamente cambia a 22.540000915527344.

He probado con otros formatos de archivos y tanto usando directamente el trabajo de carga bq como utilizando el dataframe de spark, pero el problema persiste.
Adjunto los detalles tanto de los datos del archivo AVRO como de los datos de BigQuery después de la carga.

Por favor, avíseme si ha enfrentado este problema y ayúdeme a resolverlo.

El esquema AVRO se proporciona a continuación:

{
  "type" : "record",
  "name" : "topLevelRecord",
  "fields" : [ {
    "name" : "id",
    "type" : "int"
  }, {
    "name" : "cp",
    "type" : "float"
  } ]
}

Datos AVRO:

| id  | cp  |
|-----|-----|
|  1  |22.54|

Datos de BigQuery:

| id  | cp               |
|-----|------------------|
|  1  |22.540000915527344|
Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Parece que el problema está relacionado con la precisión del tipo de dato float. Es posible que BigQuery esté convirtiendo automáticamente el tipo de dato float a una precisión mayor para mantener consistencia con su representación interna de datos numéricos.

    Para resolver este problema, puedes intentar cambiar el tipo de dato de la columna en BigQuery a un tipo de dato float de menor precisión, como float32. Alternativamente, podrías intentar convertir los datos float a un tipo de dato string antes de cargarlos en BigQuery, y luego convertirlos de vuelta a tipo de dato float después de la carga.

    También puede ser útil consultar la documentación de los formatos de archivo AVRO/Parquet y BigQuery para ver si hay recomendaciones específicas o mejores prácticas para manejar datos float.

Comments are closed.