我在 python 中运行一个 Apache Spark 程序,我收到一个我无法理解且无法开始调试的错误。我有一个驱动程序,它在一个名为 hound.py 的文件中定义了一个名为 hound 的函数。在同一个目录中,我有一个名为 hound_base.py 的文件,它定义了一个名为 hound_base_func 的函数。所以为了在 hound 中调用它,我导入了“from hound_base import hound_base_func”。这有效,我调用该函数并传递一个 Spark 数据帧。hound_base_func 将其作为参数,对其底层 rdd 做一些工作,并调用 rdd.collect()。这实际上会使代码崩溃,并显示错误消息“ModuleNotFoundError: No module named 'hound_base'”,这毫无意义!据说无法找到代码在其中执行的模块。
全程跟踪
2018-06-14 14:29:26 ERROR Executor:91 - Exception in task 0.0 in stage 2.0 (TID 2)
org.apache.spark.api.python.PythonException: Traceback (most recent call last):
File "C:\Users\Brian\Miniconda3\Lib\site-packages\pyspark\python\lib\pyspark.zip\pyspark\worker.py", line 216, in main
File "C:\Users\Brian\Miniconda3\Lib\site-packages\pyspark\python\lib\pyspark.zip\pyspark\worker.py", line 58, in read_command
File "C:\Users\Brian\Miniconda3\Lib\site-packages\pyspark\python\lib\pyspark.zip\pyspark\serializers.py", line 170, in _read_with_length
return self.loads(obj)
File "C:\Users\Brian\Miniconda3\Lib\site-packages\pyspark\python\lib\pyspark.zip\pyspark\serializers.py", line 559, in loads
return pickle.loads(obj, encoding=encoding)
ModuleNotFoundError: …Run Code Online (Sandbox Code Playgroud)