我正在尝试使用最新的星火云包和笔记本电脑:
%AddJar -f https://github.com/cloudant-labs/spark-cloudant/releases/download/v1.6.4/cloudant-spark-v1.6.4-167.jar其中产出:
Starting download from https://github.com/cloudant-labs/spark-cloudant/releases/download/v1.6.4/cloudant-spark-v1.6.4-167.jar
Finished download of cloudant-spark-v1.6.4-167.jar其次是:
val dfReader = sqlContext.read.format("com.cloudant.spark")
dfReader.option("cloudant.host", sourceDB.host)
if (sourceDB.username.isDefined && sourceDB.username.get.nonEmpty) dfReader.option("cloudant.username", sourceDB.username.get)
if (sourceDB.password.isDefined && sourceDB.password.get.nonEmpty) dfReader.option("cloudant.password", sourceDB.password.get)
val df = dfReader.load(sourceDB.database).cache()其中产出:
Use connectorVersion=1.6.3, dbName=ratingdb, indexName=null, viewName=null,jsonstore.rdd.partitions=5, + jsonstore.rdd.maxInPartition=-1,jsonstore.rdd.minInPartition=10, jsonstore.rdd.requestTimeout=900000,bulkSize=20, schemaSampleSize=1连接器为1.6.3。我的笔记本是:
Scala 2.10 with Spark 1.6我尝试过重新启动内核,但这并没有帮助。
其他调试信息:
Server Information:
You are using Jupyter notebook.
The version of the notebook server is 4.2.0 and is running on:
Python 2.7.11 (default, Jun 24 2016, 12:41:03)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-4)]
Current Kernel Information:
IBM Spark Kernel更新
我尝试了以下几点:
import sys.process._
"test -d ~/data/libs/scala-2.10" #|| "mkdir -p ~/data/libs/scala-2.10" !
"wget -c -O ~/data/libs/scala-2.10/cloudant-spark-v1.6.4-167.jar https://github.com/cloudant-labs/spark-cloudant/releases/download/v1.6.4/cloudant-spark-v1.6.4-167.jar" !
"ls ~/data/libs/scala-2.10/" !
println("Now restart the kernel")不幸的是,这是行不通的- 1.6.3仍在使用。
更新2
在上面的代码中,tilda似乎没有被解析到我的主文件夹。
请参阅工作解决方案的答案。
发布于 2017-01-04 12:36:10
从scala笔记本上运行以下代码对我有用:
import sys.process._
val HOME = sys.env("HOME")
val DESTDIR = s"${HOME}/data/libs/scala-2.10"
s"test -d ${DESTDIR}" #|| s"mkdir -p ${DESTDIR}" !
s"wget -q -c -O ${DESTDIR}/cloudant-spark-v1.6.4-167.jar https://github.com/cloudant-labs/spark-cloudant/releases/download/v1.6.4/cloudant-spark-v1.6.4-167.jar" !
s"ls ${DESTDIR}/" !我还要求产品管理为火花服务,以正式升级这个库。
发布于 2017-01-04 10:31:03
目前,对于带有Spark的DSX笔记本,支持版本1.6.3的cloudant-spark开箱即用。这意味着这个包的jar是在gpfs上提供的,jar的路径被添加到各种环境变量中,因此在启动内核时它将被添加到运行时环境中。
当您使用%AddJar魔术时,由于魔术的实现和下载路径的位置,它可能无法重载旧版本,请参阅https://github.com/ibm-et/spark-kernel/wiki/List-of-Current-Magics-for-the-Spark-Kernel。
运行时环境(包括Spark)的设置包括在不同的步骤中添加各种jar,因此如果您的目标是使用spark-cloudant的1.6.4版本,那么您必须尝试在gpfs上找到一个位置来转储jar,以便在正确的时间(这里有些猜测,因为我在设置上没有完整的图片!)。
作为长期解决办法,我建议你向火花服务提供支持,并提交一份支持新版本的请求,以便将其提供开箱即用。
由于短期解决方案(当运行时环境的设置步骤发生更改时可能无法工作),您可以执行以下操作:
!whoami!ls /gpfs/fs01/user/USERID/data/libs您将注意到,spark-cloudant jar不存在。
spark-cloudant转储到Spark的特定用户目录中(USERID =步骤2中的输出):
!wget https://github.com/cloudant-labs/spark-cloudant/releases/download/v1.6.4/cloudant-spark-v1.6.4-167.jar -P /gpfs/fs01/user/USERID/data/libs您将注意到版本1.6.4的spark-cloudant jar就在这里。
这种方法对我来说是有效的,我可以修补spark-cloudant的版本,但是这只是一个短期和暂时的解决办法!
https://stackoverflow.com/questions/41323724
复制相似问题