如何在sparkshell中运行外部jar函数

a11xaf1n  于 2021-05-27  发布在  Spark
关注(0)|答案(3)|浏览(449)

我通过以下文件树从一个项目创建了一个jar包:

build.sbt
src/main
src/main/scala
src/main/scala/Tester.scala
src/main/scala/main.scala

其中tester是一个函数的类(名称是print()),main有一个要运行的对象打印“hi!”(从spark文档)成功地由sbt创建了一个jar文件,并在spark提交中运行良好
现在我想将它添加到spark shell中,并使用tester类作为一个类来创建对象和。。。我将jar文件添加到spark-default.conf中,但是:

scala> val t = new Tester();
<console>:23: error: not found: type Tester
       val t = new Tester();
llmtgqce

llmtgqce1#

如果您想在进入sparkshell之后将.jar添加到类路径中,请使用 :require . 比如:

scala> :require /path/to/file.jar
Added '/path/to/file.jar' to classpath.
ahy6op9u

ahy6op9u2#

您可以尝试通过如下方式为jar提供参数

./spark-shell --jars pathOfjarsWithCommaSeprated

或者您可以在spark-defaults.conf中添加以下配置,但请记住从spark-defaults末尾删除模板

spark.driver.extraClassPath  pathOfJarsWithCommaSeprated
vnzz0bqm

vnzz0bqm3#

我尝试了两种选择,都对我有用。 spark-shell --jars <path of jar> 打开sparkshell-type:help,您将获得所有可用的帮助。使用下面添加
:require/full \u path \u of \u jar

相关问题