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.
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%Tags und Links mongodb apache-spark pyspark pyspark-sql