Ich habe ein pandas dataframe
, das als Flask Response
-Objekt in einer flask
-Anwendung zurückgegeben wird. Momentan konvertiere ich es in ein JSON Object
,
Die Datenrahmengröße ist wirklich riesig, wahrscheinlich 5000000 X 10. Auf der Client-Seite, wenn ich es als deserialize,
%Vor% Wenn meine Anzahl von URL request parameters
wächst, wächst auch dataframe
. Die Deserialisierungszeit wächst im Vergleich zur Serialisierung um linear factor
, was ich vermeiden möchte. Beispiel: Serialization
dauert 15-20 Sekunden, deserialization
dauert 60-70 Sekunden.
Gibt es eine Möglichkeit, dass protobuf
in diesem Fall helfen kann, den Pandas-Datenrahmen in ein Protobuf-Objekt umzuwandeln. Gibt es auch eine Möglichkeit, dass ich diese JSON
als Gunzipped
mimetype durch flask senden kann? Ich glaube, es gibt ein vergleichbares Timing und eine vergleichbare Effizienz zwischen protobuf
und gunzip
.
Was ist die beste Lösung in einem solchen Szenario?
Vielen Dank im Voraus.
Ich bin kürzlich auf dasselbe Problem gestoßen. Ich löste es, indem ich die Zeilen meines DataFrame durchlaufen und protobuf_obj.add () in dieser Schleife mit Informationen aus dem DataFrame aufruft. Sie können dann die serialisierte Zeichenfolgenausgabe mit GZIP versehen.
d. etwas in der Art von:
%Vor%Angesichts der Tatsache, dass diese Frage nicht innerhalb von neun Monaten beantwortet wurde, bin ich mir nicht sicher, ob es eine bessere Lösung gibt, aber definitiv offen dafür, eine zu hören, wenn es welche gibt!
Tags und Links python json serialization gzip protocol-buffers