Ich habe die ElasticSearch- und Spark-Integration auf meinem lokalen Rechner getestet, indem ich einige in elasticsearch geladene Testdaten verwendet habe.
%Vor%Der Code läuft gut und liefert das korrekte Ergebnis erfolgreich mit esRDD.first ()
esRDd.collect () erzeugt jedoch eine Ausnahme:
%Vor%Ich glaube, das hängt mit dem hier erwähnten Problem zusammen Ссылка also habe ich diese Zeile entsprechend hinzugefügt.
%Vor%Soll ich etwas anderes machen, damit es funktioniert? Danke
Aktualisierungen: Das Setup-Problem wurde behoben. mit
%Vor%statt
%Vor%Jetzt gibt es noch einen Es gibt 1000 verschiedene Datensätze in diesem Datensatz
%Vor%gibt 1000 kein Problem zurück, jedoch
%Vor%gibt 5 zurück! Wenn ich die Datensätze drucke
%Vor%Es druckt die 1000 Datensätze korrekt aus. Aber wenn ich sammle oder nimm
%Vor%es wird DUPLICATED Datensätze drucken, und es gibt tatsächlich nur 5 eindeutige Datensätze, die scheinen eine zufällige Teilmenge des gesamten Datensatzes zu sein - es sind nicht die ersten 5 Datensätze. Wenn ich die RDD speichere und sie zurück lese
%Vor%esRDD2 verhält sich wie erwartet. Ich frage mich, ob es einen Fehler gibt oder etwas, das ich nicht über das Verhalten von Collect / Take verstehe. Oder liegt es daran, dass ich alles lokal leite? Standardmäßig scheint Spark RDD 5 Partitionen zu verwenden, wie in der Anzahl der Teile-xxxx-Dateien der "Spark-Output" -Datei gezeigt. Das ist wahrscheinlich der Grund, warum esRDD.collect () und esRDD.distint () 5 eindeutige Datensätze anstelle einer anderen Zufallszahl zurückgegeben haben. Aber das ist immer noch nicht richtig.
Tags und Links serialization apache-spark elasticsearch elasticsearch-hadoop