ElasticSearch zu Spark RDD

8

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.

    
user3931226 11.08.2014, 21:58
quelle

2 Antworten

1

Sie sollten die folgenden Codes verwenden, um zu initialisieren:

%Vor%     
zsxwing 12.08.2014 13:11
quelle
0

können Sie versuchen

%Vor%     
Neil_TW 28.08.2017 08:41
quelle