我有以下文件夹结构
- libfolder
- lib1.py
- lib2.py
- main.py
Run Code Online (Sandbox Code Playgroud)
main.py呼叫libfolder.lib1.py,然后呼叫libfolder.lib2.py和其他。
在本地计算机上一切正常,但是将其部署到Dataproc后,出现以下错误
File "/usr/lib/spark/python/lib/pyspark.zip/pyspark/serializers.py", line 455, in loads
return pickle.loads(obj, encoding=encoding)
ModuleNotFoundError: No module named 'libfolder'
Run Code Online (Sandbox Code Playgroud)
我已将文件夹压缩xyz.zip并运行以下命令:
spark-submit --py-files=xyz.zip main.py
Run Code Online (Sandbox Code Playgroud)
序列化程序无法找到的位置libfolder。我打包文件夹的方式有问题吗?
此问题与此类似,但未得到解决。
编辑:回答伊戈尔的问题
zip文件的unzip -l返回以下内容
- libfolder
- lib1.py
- lib2.py
- main.py
Run Code Online (Sandbox Code Playgroud)
在main.py中,使用此import语句调用lib1.py
from libfolder import lib1
Run Code Online (Sandbox Code Playgroud)