Ho un pandas dataframe
da restituire come oggetto Flask Response
in un'applicazione flask
. Attualmente sto convertendolo in un JSON Object
,Come serializzare/deserializzare Pandas DataFrame da e verso ProtoBuf/Gzip in un'app RESTful Flask?
df = df.to_json()
return Response(df, status=200, mimetype='application/json')
Le dimensioni dataframe è davvero enorme della grandezza, probabilmente 5000000 X 10. Sul lato client, quando ho deserializzare come,
df = response.read_json()
Come il mio numero di URL request parameters
cresce, cresce anche il dataframe
. Il tempo di deserializzazione cresce a linear factor
rispetto alla serializzazione, che vorrei evitare. ad esempio: Serialization
richiede 15-20 secondi, deserialization
richiede 60-70 secondi.
C'è un modo che protobuf
può aiutare in questo caso per convertire il dataframe panda in un oggetto protobuf. C'è anche un modo per mandare questo JSON
come il mimetipo Gunzipped
attraverso il pallone? Credo che ci sia un tempismo ed efficienza comparabili tra protobuf
e gunzip
.
Qual è la soluzione migliore in uno scenario del genere?
Grazie in anticipo.