我通过这个文件树从项目中创建了一个jar包:
build.sbt
src/main
src/main/scala
src/main/scala/Tester.scala
src/main/scala/main.scala
其中Tester是一个函数类(name是print()),main有一个要运行的对象,打印出“Hi!” (来自火花文件) 由sbt成功创建了一个jar文件,并在spark-submit
中运行良好现在我想将它添加到spark-shell中并使用Tester类作为创建对象的类... 我将jar文件添加到spark-default.conf中,但是:
scala> val t = new Tester();
<console>:23: error: not found: type Tester
val t = new Tester();
答案 0 :(得分:34)
你可以尝试提供带有参数的罐子,如下所示
./spark-shell --jars pathOfjarsWithCommaSeprated
或者您可以在spark-defaults.conf中添加以下配置,但请记住从spark-defaults末尾删除模板
spark.driver.extraClassPath pathOfJarsWithCommaSeprated
答案 1 :(得分:17)
如果要在输入spark-shell后将.jar添加到类路径中,请使用:require
。像:
scala> :require /path/to/file.jar
Added '/path/to/file.jar' to classpath.
答案 2 :(得分:1)
我尝试了两种选择,并且都为我工作。
class GeneralHolder<DataModel, ClickListner>(
private val binding: ViewDataBinding,
val listener: ClickListner
) :
RecyclerView.ViewHolder(binding.root) {
fun bind(data: DataModel) {
binding.setVariable(BR.item, data)
binding.setVariable(BR.presenter, listener)
binding.setVariable(BR.itemPosition, adapterPosition)
binding.executePendingBindings()
}
}
打开spark-shell -Type:help,您将获得所有可用的帮助。 在下面添加
:需要/ full_path_of_jar