Schnelles Laden einer Solr -Streaming -Antwort (JSON) in Polare
Posted: 05 Feb 2025, 12:54
Ich möchte große Antworten der Solr -Streaming -API in Polare (Python) effizient laden. Die Solr -Streaming -API gibt JSON der folgenden Form zurück: < /p>
Das heißt: Ich brauche jedes Element von Ergebnis-set.docs -mit Ausnahme des letzten, das das Ende der Antwort markiert.
Für den Moment ist meine schnellste Lösung, diesen ersten mit dem JStream- und GNU -Kopf in Ndjson zu konvertieren und dann pl.Read_ndjson :
zu verwendencat result.json | jstream -d 3 | head -n -1 > result.ndjson
< /code>
Dies taktet bei etwa 8s für eine 770mib -Datei ein, was für mich vollkommen in Ordnung ist. Wenn ich den JSON manuell ändere, um nur eine Liste der obersten Ebene zu haben, kann ich diese mit pl.read_json (result_manipuled) noch schneller laden. Geben Sie das Schema manuell an, sodass die letzte Zeile keine Schema -Fehler erzeugt.>
Code: Select all
{
"result-set":{
"docs":[{
"col1":"value",
"col2":"value"}
,{
"col1":"value",
"col2":"value"}
...
,{
"EOF":true,
"RESPONSE_TIME":12345}]}}
Für den Moment ist meine schnellste Lösung, diesen ersten mit dem JStream- und GNU -Kopf in Ndjson zu konvertieren und dann pl.Read_ndjson :
zu verwendencat result.json | jstream -d 3 | head -n -1 > result.ndjson
< /code>
Dies taktet bei etwa 8s für eine 770mib -Datei ein, was für mich vollkommen in Ordnung ist. Wenn ich den JSON manuell ändere, um nur eine Liste der obersten Ebene zu haben, kann ich diese mit pl.read_json (result_manipuled) noch schneller laden. Geben Sie das Schema manuell an, sodass die letzte Zeile keine Schema -Fehler erzeugt.>