Spark包标志与Jars目录有什么区别?

5
在Spark中,通过--packages参数将JAR包添加到类路径和直接将JAR包添加到$SPARK_HOME/jars目录有什么区别?
1个回答

5

简而言之: jars 用于指定 URL 的本地或远程 jar 文件,不解决依赖关系;packages 用于 Maven 坐标,并解决依赖关系。详见文档

  • --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 Packages。


1
谢谢@user9789292 (+1) -- 但我不是在谈论--jars标志,我是在谈论将JAR文件放置在$SPARK_HOME/jars目录与--packages的区别。有什么想法吗? - hotmeatballsoup

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接