小编Gol*_*ngi的帖子

ModuleNotFoundError,因为PySpark序列化程序无法找到库文件夹

我有以下文件夹结构

 - 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)

python apache-spark pyspark google-cloud-dataproc

5
推荐指数
1
解决办法
531
查看次数