なんとな~くしあわせ?の日記

「そしてそれゆえ、知識そのものが力である」 (Nam et ipsa scientia potestas est.) 〜 フランシス・ベーコン

PySparkの実行でImportError: No module namedが出たとき

ImportError: No module named

エラー

EMRの実環境でPySparkでクエリやUDFを実行させていたら以下のようなエラーが発生した。

ImportError: No module named 'foo'

どうやら各ノードにPythonのモジュールが分散されていない(?)ようだ。

対処

StackOverflowに似たようなケースがあった
stackoverflow.com

どうやら spark-submit コマンドの後に --py-files のような引数を追加すればいいらしい。

ドキュメントには一応書いてあるようだ

spark.apache.org

For Python, the equivalent --py-files option can be used to distribute .egg, .zip and .py libraries to executors.