in

Pandas a Parquet a Bigquery Type Issuses

Estoy escribiendo un código bastante simple para analizar un csv, aplicar un esquema, guardar el archivo en gcp como parquet y luego usar bigquery para cargar muchos parquets en una sola carpeta como la misma tabla. Así que leo el csv usando pandas y aplico el esquema así:

df = pd.read_csv(in_file, dtype=pd_schema, parse_dates=date_vars)

Pero hay un problema cuando una columna de cadena tiene un csv con todos los nulos y otro con valores. No estoy seguro de si este problema está ocurriendo en el lado del parquet o en el lado de bigquery, pero aparece el error:

400 Error while reading table: temp, error message: Parquet column 'blah' has type BYTE_ARRAY which does not match the target cpp_type INT64. File: gs://blah/blah.parquet

Parece que da una columna de objeto todo-ninguno del tipo INT64, pero una columna de objeto con cadenas del tipo BYTE_ARRAY. ¿Hay alguna manera de que pueda ver si este problema está ocurriendo en el nivel de parquet o en el nivel de bigquery? ¿Y hay alguna manera en que pueda ser más específico al aplicar un esquema? Parece que el problema básico es que pandas asigna el objeto dtype cuando especifico str, ¿hay tal vez un tipo de datos pyarrow que pueda aplicar que sea más específico? ¡Gracias!

0

¿Te ayudó la respuesta?

Subscribirse
Notificar por
guest

0 Comentarios
Inline Feedbacks
Ver todas las Respuestas

evitar que el autocompletado de PowerShell agregue un prefijo de punto

Uso de ModelBuilder para seleccionar atributos idénticos en todas las demás entidades de geodatabase de archivos