【发布时间】:2020-12-22 15:37:21
【问题描述】:
我有一个如下的主脚本
from pyspark.sql.session import SparkSession
..............
..............
..............
import callmodule as cm <<<--- This is imported from another pyspark script which is in callmod.zip file
..............
..............
..............
当我如下提交 spark 命令时,它失败并显示错误:没有名为 Callmodule 的模块
spark-submit --master local --py-files C:\pyspark\scripts\callmod.zip mainscript.py
当我提交带有驱动程序类路径(没有执行程序类路径)的 spark 命令时,它运行成功。
spark-submit --master local --py-files C:\pyspark\scripts\callmod.zip --driver-class-path C:\pyspark\scripts\callmod.zip mainscript.py
(or)
spark-submit --master local --py-files C:\pyspark\scripts\callmod.zip --conf spark.driver.extraClassPath=C:\pyspark\scripts\callmod.zip mainscript.py
(or)
spark-submit --master local --py-files C:\pyspark\scripts\callmod.zip --conf spark.driver.extraLibraryPath=C:\pyspark\scripts\callmod.zip mainscript.py
当我提交带有执行程序类路径(没有驱动程序类路径)的 spark 命令时,它也成功运行。
spark-submit --master local --py-files C:\pyspark\scripts\callmod.zip --conf spark.executor.extraClassPath=C:\pyspark\scripts\callmod.zip mainscript.py
(or)
spark-submit --master local --py-files C:\pyspark\scripts\callmod.zip --conf spark.executor.extraLibraryPath=C:\pyspark\scripts\callmod.zip mainscript.py
你能解释一下下面的导入语句在哪里起作用吗?在驱动程序或执行程序上?
import callmodule as cm
当只设置驱动类路径或只设置执行器类路径时,为什么代码没有失败并显示 Error: No Module Named callmodule?
【问题讨论】:
标签: apache-spark pyspark