【发布时间】:2019-08-15 09:06:19
【问题描述】:
两天前我已经开始探索 spark 了。所以我对它很陌生。我的用例是在我用 spark-shell 编写的 scala 代码中访问外部 jar 中存在的 java 函数。但我认为我没有正确加载我的罐子。这就是我正在做的事情
spark-shell --master local[2] --jars pathToJarsWithComma --conf="spark.driver.extraClassPath=pathToJarsWithColon" --conf="spark.executor.extraClassPath=pathToJarsWithColon"
这就是我启动 spark-shell 并传递所有必需的 jar 的方式。每当我尝试调用 java 静态函数时:
rdd1.collect.foreach(a=>MyClass.myfuncttion(a))
我收到错误:
<console>:26: error: not found: value MyClass
我想知道我的理解是否正确。我们可以通过加载外部 jar 在 spark 中使用 java 函数吗?如果是,那么我在这里做错了什么。请指导。
【问题讨论】:
-
你导入了吗?您需要先使用
import my.package.MyClass导入类(my.package当然是示例)。 -
您确定您传递的 jar 包含您所指的类吗?
-
是的,我的 jar 中有这个类。我确实像这样导入了包:
import my.package._希望这个包下的所有类都将被加载。但我遇到了与我提到的相同的错误。
标签: java scala apache-spark jar spark-shell