【发布时间】:2021-10-26 07:24:46
【问题描述】:
我的要求是在我的 pyspark 应用程序中使用 com.microsoft.ml.spark:mmlspark_2.12:1.0.0-rc3-43-54379bf7-SNAPSHOT。我无法使用 --package 和 --repositories 选项,因为部署环境中没有互联网连接。
但是,我可以做的一个是从 maven 下载依赖项并将所有内容打包到 Docker 映像中以进行部署。
为了下载依赖,我使用了:
mvn dependency:get -DremoteRepositories="https://mmlspark.azureedge.net/maven" -Dartifact="com.microsoft.ml.spark:mmlspark_2.12:1.0.0-rc3-43-54379bf7-SNAPSHOT"
这会下载/home/user/.m2/repository 位置中的所有依赖项。
现在为了在我的 spark 应用程序中使用它们,我尝试了几件事:
1.) 提取所有 jars 使用--jars /user/home/jar_files/*,我已经复制了所有下载的 jars。
==> 但是,这会失败并出现错误:
Exception in thread "main" org.apache.spark.SparkException: No main class set in JAR; please specify one with --class.
at org.apache.spark.deploy.SparkSubmit.error(SparkSubmit.scala:968)
2.) 其次,我复制了所有必要的 jar 并将它们复制到 site-package/pyspark/jars/ 位置。我的spark-submit 命令没有任何额外的选项。失败并出现错误:
from mmlspark.lightgbm._LightGBMRegressor import _LightGBMRegressor
ModuleNotFoundError: No module named 'mmlspark.lightgbm._LightGBMRegressor'
3.) 我也尝试使用 --files 代替 --jars,但效果不佳。
我需要有关如何在我的 pyspark 应用程序中添加这些 jar 的帮助。
谢谢
【问题讨论】: