2014-10-31 20 views
5

Wie würde man Komponententests mit nose für Apache Spark-Anwendungen in Python geschrieben ausführen?Ausführen von nosetests für pyspark

Mit nose würde man in der Regel nur den Befehl rufen

nosetests 

die Tests im tests Verzeichnis eines Python-Paket auszuführen. Pyspark-Skripte müssen mit dem spark-submit-Befehl anstelle der üblichen Python-Programmdatei ausgeführt werden, um den Import des pyspark -Moduls zu ermöglichen. Wie würde ich nosetests mit pyspark kombinieren, um Tests für meine Spark-Anwendung auszuführen?

Antwort

4

Wenn es hilft, verwenden wir nosetest zum Test sparkling pandas. Wir machen ein bisschen Magie in unserer Datei utils, um pyspark auf der Grundlage der Shell-Umgebungsvariablen SPARK_HOME dem Pfad hinzuzufügen.

+0

Das klingt sicherlich interessant. Möchten Sie etwas präziser darüber informiert werden, was Sie für die Durchführung Ihrer Tests tun müssen? Vielen Dank im Voraus – karlson

+1

Sicher, das Run-Tests-Skript, das wir in das Repo setzen, prüft nur, ob die SPARK_HOME-Umgebung gesetzt ist, und wenn es funktioniert, werden Nasetests mit einer Reihe von optionalen Flags aufgerufen. Wir haben auch einen Basis-Testfall hinzugefügt, den wir für unsere individuellen Tests erweitern, der einen lokalen Funkenkontext startet und stoppt. Das funktioniert, weil wir die Dinge zu unserem Python-Pfad in der von mir erwähnten Datei "utils" hinzufügen, was wahrscheinlich Ihren Tests fehlt. – Holden

+0

Danke, mit Hilfe deines Codes konnte ich tatsächlich meine Unit Tests laufen lassen! @Holden – karlson