首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >spark-shell -无法访问jars中的java函数

spark-shell -无法访问jars中的java函数
EN

Stack Overflow用户
提问于 2019-03-25 14:45:10
回答 1查看 788关注 0票数 0

我两天前就开始探索spark了。所以我对它还很陌生。我的用例是在我的scala代码中访问外部jar中的java函数,这是我用spark-shell编写的。但我想我没有正确加载我的罐子。下面是我正在做的事情

代码语言:javascript
复制
spark-shell --master local[2] --jars pathToJarsWithComma --conf="spark.driver.extraClassPath=pathToJarsWithColon" --conf="spark.executor.extraClassPath=pathToJarsWithColon"

这就是我如何启动我的spark-shell,并传递所有需要的jars。每当我尝试调用java静态函数时,如下所示:

代码语言:javascript
复制
rdd1.collect.foreach(a=>MyClass.myfuncttion(a))

我收到以下错误:

代码语言:javascript
复制
<console>:26: error: not found: value MyClass

我想知道我的理解是否正确。我们可以通过加载外部jars在spark中使用java函数吗?如果是,那么我在这里做错了什么。请给我引路。

EN

回答 1

Stack Overflow用户

发布于 2019-03-26 07:04:06

我们可以通过加载外部jars来加载Spark中的java函数。我不确定您是否需要在末尾添加的conf才能使其工作。对我来说,我尝试了以下方法来测试在spark shell中加载jar。

代码语言:javascript
复制
./bin/spark-shell --master <spark url>  --jars /home/SparkBench/Terasort/target/jars/guava-19.0-rc2.jar

之后,在shell中,我尝试从jar中的类访问字段。

代码语言:javascript
复制
scala> import com.google.common.primitives.UnsignedBytes
import com.google.common.primitives.UnsignedBytes
scala> UnsignedBytes.MAX_POWER_OF_TWO
res0: Byte = -128

如您所见,我能够从外部jar访问字段。您还可以测试是否可以通过一个简单的字段访问Class。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55332465

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档