Warum gibt der Mongo Spark-Connector für eine Abfrage unterschiedliche und falsche Zahlen zurück?

7

Ich bewerte Mongo Spark connector für ein Projekt und bekomme die inkonsistenten Ergebnisse. Ich benutze MongoDB Server Version 3.4.5, Spark (über PySpark) Version 2.2.0, Mongo Spark Connector Version 2.11, 2.2.0 lokal auf meinem Laptop. Für meine Test-DB verwende ich den Enron-Datensatz Ссылка , für den ich mich interessiere Spark SQL-Abfragen und wenn ich begann, einfache Testabfragen für die Zählung zu laufen, erhielt ich unterschiedliche Zählungen für jeden Lauf. Hier ist Ausgabe von meiner Mongo-Shell:

%Vor%

Hier sind einige Ausgaben von meiner PySpark-Shell:

%Vor%

Ich habe in Google nach diesem Problem gesucht, aber ich habe nichts hilfreiches gefunden. Wenn jemand irgendwelche Ideen hat, warum dies passieren könnte und wie man damit richtig umgehen kann, teilen Sie uns bitte Ihre Ideen mit. Ich habe das Gefühl, dass ich etwas übersehen habe oder dass etwas nicht richtig konfiguriert wurde.

UPDATE: Ich habe mein Problem gelöst. Der Grund für inkonsistente Zählungen war der MongoDefaultPartitioner , der MongoSamplePartitioner umschließt, der Stichproben verwendet. Um ehrlich zu sein, ist das eine ziemlich merkwürdige Voreingenommenheit für mich. Ich persönlich würde lieber einen langsamen aber einen konsequenten Partitionierer stattdessen haben. Die Details zu den Partitionierungsoptionen finden Sie in der offiziellen Konfigurationsoptionen -Dokumentation.

UPDATE: Kopierte die Lösung in eine Antwort.

    
artemdevel 09.10.2017, 17:35
quelle

2 Antworten

5

Ich habe mein Problem gelöst. Der Grund für inkonsistente Zählungen war der MongoDefaultPartitioner , der MongoSamplePartitioner umschließt, der Stichproben verwendet. Um ehrlich zu sein, ist das eine ziemlich merkwürdige Voreingenommenheit für mich. Ich persönlich würde lieber einen langsamen aber einen konsequenten Partitionierer stattdessen haben. Die Details zu den Partitionierungsoptionen finden Sie in der offiziellen Konfigurationsoptionen -Dokumentation.

code:

%Vor%     
artemdevel 13.10.2017, 04:35
quelle
0

Dieses Problem wurde hauptsächlich durch den SPARK-151 Fehler im 2.2.0 Mongo Connector verursacht. Es ist in 2.2.1 Version gelöst, die ich bestätigt habe. Sie können weiterhin den Standard-Partitionierer mit 2.2.1 verwenden.

    
gaurav 21.03.2018 08:16
quelle