如何使用“local”包运行Spark Shell?

5
这里的页面(http://spark.apache.org/docs/latest/programming-guide.html)指出,可以在启动shell时通过以下方式包含包:
$SPARK_HOME/bin/spark-shell --packages com.databricks:spark-csv_2.11:1.4.0

什么是包含本地文件的语法(例如手动下载的文件)?与Maven坐标有关吗?

这意味着包已经在主节点/工作节点本地可用了吗? - Yuval Itzchakov
是的,我在考虑一种全局一致挂载的文件系统。我应该提到这一点。因此,所有工作人员都可以看到相同的目录。 - mathtick
对于现在阅读此内容的任何人,spark-csv现已内嵌到spark 2.0中。 - mathtick
2个回答

4
如果master/worker上有jar包,只需要在spark-submit中的类路径中指定它们即可:
spark-shell \
spark.driver.extraClassPath="/path/to/jar/spark-csv_2.11.jar" \
spark.executor.extraClassPath="spark-csv_2.11.jar"

如果这些jar包只存在于 Master 节点,而你又想将它们发送到 worker 节点 (仅适用于客户端模式),你可以添加 --jars 标记:

spark-shell \
spark.driver.extraClassPath="/path/to/jar/spark-csv_2.11.jar" \
spark.executor.extraClassPath="spark-csv_2.11.jar" \
--jars "/path/to/jar/jary.jar:/path/to/other/other.jar"

如果需要更详细的答案,请参考《向Spark作业中添加JAR文件——spark-submit》


2
请使用以下命令:

./spark-shell --jars 要包含的我的jar文件

有一个与此相关的未解决问题,请查看这个问题

1
应该使用 --jars 而不是 --jar - Philip K. Adetiloye

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