2017-07-08 5 views
0

私はhttps://developer.ibm.com/clouddataservices/docs/ibm-data-science-experience/docs/load-and-filter-cloudant-data-with-spark/に従って、Sparkでクラウドデータをロードしようとしています。私はスパーク2.1スカラ2.11(ならびにスパーク2.0で発生)、その中に次のコードでノートた:れるjava.lang:そのセルを実行しようとするだけcom.cloudant.sparkデータソースがDSXノートブックに見つかりません

名で

// @hidden_cell 
var credentials = scala.collection.mutable.HashMap[String, String](
    "username"->"<redacted>", 
    "password"->"""<redacted>""", 
    "host"->"<redacted>", 
    "port"->"443", 
    "url"->"<redacted>" 
) 
val sqlContext = new org.apache.spark.sql.SQLContext(sc) 
val cloudantdata = sqlContext.read.format("com.cloudant.spark"). 
option("cloudant.host", credentials("host")). 
option("cloudant.username", credentials("username")). 
option("cloudant.password", credentials("password")). 
load("crimes") 

を終了します.ClassNotFoundException メッセージ:データソースの検索に失敗しました:com.cloudant.spark。パッケージを見つけるにはhttp://spark.apache.org/third-party-projects.html StackTrace:org.apache.spark.sql.execution.datasources.DataSource $ .lookupDataSource(DataSource.scala:569) at org.apache.spark.sql.execution.datasources.DataSource.providingClass $ (DataSource.scala:86) at org.apache.spark.sql.execution.datasources.DataSource.resolveRelation(DataSource.scala:86) でのlzycompute(DataSource.scala:86) DataSource.scala:org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scalaにおける152) :org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scalaにおける325) 135) ... 42 elided 原因:java.lang.ClassNotFoundException:com.cloudant.spark.DefaultSource at scala.refl ect.internal.util.AbstractFileClassLoader.findClass(AbstractFileClassLoader.scala:62)java.lang.ClassLoader.loadClassHelperで java.lang.ClassLoader.loadClassで(ClassLoader.java:844) (ClassLoader.java:823) で(DataSource.scala:554) at java.lang.ClassLoader.loadClass DataSource.scal.sql.execution.datasources.DataSource $$ anonfun $ 25 $$ anonfun $ apply $ 13.apply(DataSource.scala:554) at scala.util.Try $ .apply(Try.scala:192) org.apache.spark.sql.execution.datasources.DataSource $$ anonfun $ 25.apply(DataSource.scala:554) at org.apache.spark.sql.execution.datasources.DataSource $$ anonfun $ 25.apply(データソース.scala:554)org.apache.spark.sql.execution.datasources.DataSource $ .lookupDataSource(DataSource.scala:554)で :scala.util.Try.orElse(84 Try.scala)で

どのようにすることができますこのエラーを回避し、Cloudantデータベースに接続しますか?

答えて

2

通常、DSXノートブックにデフォルトで存在するクラウドドライバが見つからない問題があったに違いありません。 python 2.0とspark 2.1カーネル に変更し、すべてのspark 2.0+カーネルで利用できるように、クラウドコネクタのこの1回のインストール(スパークサービスごと)を実行してください。

!pip install --upgrade pixiedust 

import pixiedust

pixiedust.installPackage("cloudant-labs:spark-cloudant:2.0.0-s_2.11") 

再起動カーネルに一度。

次に、カーネルをscalaカーネルに変更し、クラウド接続コードを実行します。

ありがとう、 チャールズ。

関連する問題