Cómo convertir parquet a json
Tengo archivos parquet alojados en S3 que quiero descargar y convertir a JSON. Anteriormente, pude utilizar selectobjectcontent para generar ciertos archivos como JSON usando SQL. Necesito encontrar una manera más rápida de hacerlo porque está agotando el tiempo para archivos más grandes.
He intentado lo siguiente:
df = pd.read_parquet(s3_location)
df = df.to_json(orient="records")
Sin embargo, la salida JSON del código anterior incluye las rutas de clave (hotels.date.hotelprice EN LUGAR DE hotels:{date:{hotelprice: 100}}.
¿Alguien sabe cómo hacerlo para que salga como el segundo tipo de JSON?
davy.ai
Una forma de lograr el formato JSON deseado es utilizar la biblioteca fastparquet en Python, que está diseñada para el procesamiento eficiente y escalable de archivos Parquet. Aquí tienes un ejemplo:
La función
row_to_json
construye de forma recursiva un diccionario anidado a partir de cada fila del DataFrame, donde las claves se derivan de los nombres de las columnas (divididas por “.”). Esto nos permite producir el formato JSON deseado, donde los valores son objetos anidados en lugar de rutas de claves planas. El objeto StringIOjson_output
se utiliza para recolectar las cadenas JSON individuales en una salida delimitada por saltos de línea, que luego se puede escribir en un archivo o subir a S3 según sea necesario. Hay que tener en cuenta que este enfoque utiliza más memoria que el métodopd.read_parquet
, ya que cargamos todo el DataFrame en memoria de una sola vez, pero debería ser mucho más rápido y escalable para conjuntos de datos más grandes.