我同时对Spark和Scala很新,所以有些事情需要澄清。我上网寻找我的问题的确切答案,但我并没有最终得到一个。
目前,我正在运行spark-shell
,以便编写一些基本的Scala并完成我的教程。现在,教程要我在spark中添加一个库,以便导入它并将其用于示例。我已经下载了库的.jar
文件。我应该放入/spark/jars/
文件夹吗?这是足够的,以便导入它或我是否也应该在其他地方声明它?在运行./spark-shell
之前是否需要添加命令?
另外,当我创建一个独立程序(使用sbt
并在build.sbt中声明库)时,spark会在.jar
文件夹中找到/spark/jars/
吗?需要把它放在其他地方吗?
答案 0 :(得分:0)
可以使用jar
命令将任何spark-shell
添加到--jars
:
evan@vbox:~> cat MyClass.java
public class MyClass
{
public static int add(int x, int y)
{
return x + y;
}
}
evan@vbox:~> javac MyClass.java
evan@vbox:~> jar cvf MyJar.jar MyClass.class
added manifest
adding: MyClass.class(in = 244) (out= 192)(deflated 21%)
evan@vbox:~> spark --jars ./MyJar.jar
Welcome to
____ __
/ __/__ ___ _____/ /__
_\ \/ _ \/ _ `/ __/ '_/
/___/ .__/\_,_/_/ /_/\_\ version 2.0.1
/_/
Using Scala version 2.11.8 (OpenJDK 64-Bit Server VM, Java 1.8.0_111)
Type in expressions to have them evaluated.
Type :help for more information.
scala> MyClass.add(2,3)
res0: Int = 5
如果您要使用具有依赖关系的sbt
创建项目,我建议您使用"uber jar"制作sbt assembly。这将创建一个包含所有依赖项的JAR文件,允许您使用上面的命令添加一个jar。