首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java.lang.ClassNotFoundException:找不到数据源: com.cloudant.spark。在IBM BigInsights集群中

java.lang.ClassNotFoundException:找不到数据源: com.cloudant.spark。在IBM BigInsights集群中
EN

Stack Overflow用户
提问于 2016-08-06 03:16:50
回答 1查看 724关注 0票数 2

我已经创建了一个IBM服务实例,其中包含5个节点的BigInsights集群(包括Apache Spark)。我尝试使用SparkR连接Cloudant数据库,获取一些数据,并进行一些处理。

我已经启动了一个SparkR外壳(终端),并运行了以下代码:

代码语言:javascript
复制
sparkR.stop()
# Creating SparkConext and connecting to Cloudant DB
sc <- sparkR.init(sparkEnv = list("cloudant.host"="<<cloudant-host-name>>","<<><<cloudant-user-name>>>","cloudant.password"="<<cloudant-password>>", "jsonstore.rdd.schemaSampleSize"="-1"))

# Database to be connected to extract the data
database <- "testdata"
# Creating Spark SQL Context
sqlContext <- sparkRSQL.init(sc)
# Creating DataFrame for the "testdata" Cloudant DB
testDataDF <- read.df(sqlContext, database, header='true', source = "com.cloudant.spark",inferSchema='true')

我收到以下错误消息:

代码语言:javascript
复制
16/08/05 19:00:27 ERROR RBackendHandler: loadDF on org.apache.spark.sql.api.r.SQLUtils failed
Error in invokeJava(isStatic = TRUE, className, methodName, ...) :
  java.lang.ClassNotFoundException: Failed to find data source: com.cloudant.spark. Please find packages at http://spark-packages.org
        at org.apache.spark.sql.execution.datasources.ResolvedDataSource$.lookupDataSource(ResolvedDataSource.scala:77)
        at org.apache.spark.sql.execution.datasources.ResolvedDataSource$.apply(ResolvedDataSource.scala:102)
        at org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:119)
        at org.apache.spark.sql.api.r.SQLUtils$.loadDF(SQLUtils.scala:160)
        at org.apache.spark.sql.api.r.SQLUtils.loadDF(SQLUtils.scala)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.apache.spark.api.r.RBackendHandler.handleMethodCall(RBackendHandler.scala:141)
        at org.apache.spark.api.r.RBackendHandler.channelRead0(RBacke

如何在IBM中安装spark-cloudant连接器并解决这个问题?任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2016-12-11 03:14:59

您需要将包的名称传递给sparkR.init:

代码语言:javascript
复制
sc <- sparkR.init(sparkPackages="com.databricks:spark-csv_2.11:1.0.3")

请看这里:

https://spark.apache.org/docs/1.6.0/sparkr.html#from-data-sources

spark cloudant包在这里:

https://spark-packages.org/package/cloudant-labs/spark-cloudant

对于4.2集群,我认为您需要:

代码语言:javascript
复制
cloudant-labs:spark-cloudant:1.6.4-s_2.10
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38796371

复制
相关文章

相似问题

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