【发布时间】:2018-05-14 23:42:33
【问题描述】:
在 Spark 中,通过 --packages 参数将 JAR 添加到类路径与直接将 JAR 添加到 $SPARK_HOME/jars 目录有什么区别?
【问题讨论】:
标签: apache-spark
在 Spark 中,通过 --packages 参数将 JAR 添加到类路径与直接将 JAR 添加到 $SPARK_HOME/jars 目录有什么区别?
【问题讨论】:
标签: apache-spark
TL;DR jars 用于通过 URL 指定的本地或远程 jar 文件,不解析依赖项,packages 用于 Maven 坐标,并解析依赖项。 From docs
--jars
使用 spark-submit 时,应用程序 jar 以及包含在 --jars 选项中的任何 jar 将自动传输到集群。 --jars 之后提供的 URL 必须用逗号分隔。该列表包含在驱动程序和执行程序类路径中。目录扩展不适用于 --jars。
--packages
用户还可以通过使用 --packages 提供逗号分隔的 Maven 坐标列表来包含任何其他依赖项。使用此命令时将处理所有传递依赖项。可以使用 --repositories 标志以逗号分隔的方式添加其他存储库(或 SBT 中的解析器)。 (请注意,在某些情况下,可以在存储库 URI 中提供受密码保护的存储库的凭据,例如在 https://user:password@host/.... 以这种方式提供凭据时要小心。)这些命令可以与 pyspark、spark-shell 一起使用, 和 spark-submit 以包含 Spark 包。
【讨论】:
--jars 标志,我是在谈论将JAR 文件放在$SPARK_HOME/jars 目录与--packages 中。有什么想法吗?