Источник данных com.cloudant.spark не найден в блокноте DSX

Я пытаюсь следовать https://developer.ibm.com/clouddataservices/docs/ibm-data-science-experience/docs/load-and-filter-cloudant-data-with-spark/ для загружать облачные данные с помощью Spark. У меня есть блокнот Scala 2.11 со Spark 2.1 (также бывает и со Spark 2.0) со следующим кодом:

// @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")

Попытка выполнить эту ячейку заканчивается только

Имя: java.lang.ClassNotFoundException Сообщение: Не удалось найти источник данных: com.cloudant.spark. Пакеты можно найти по адресу http://spark.apache.org/Third-Party-Projects.html StackTrace: в org.apache.spark.sql.execution.datasources.DataSource$.lookupDataSource(DataSource.scala:569) в org.apache.spark.sql.execution.datasources.DataSource.providingClass$lzycompute( DataSource.scala:86) в org.apache.spark.sql.execution.datasources.DataSource.providingClass(DataSource.scala:86) в org.apache.spark.sql.execution.datasources.DataSource.resolveRelation(DataSource.scala: 325) в org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:152) в org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:135) ... 42 пропущено Причина: java. lang.ClassNotFoundException: com.cloudant.spark.DefaultSource в scala.reflect.internal.util.AbstractFileClassLoader.findClass(AbstractFileClassLoader.scala:62) в java.lang.ClassLoader.loadClassHelper(ClassLoader.java:844) в java.lang.ClassLoader.loadClass(ClassLoader.java:823) в java.lang.ClassLoader.loadClass(ClassLoader.java:803) в org.apache.spark.sql.execution.datasources.DataSource$$anonfun$25$$ anonfun$apply$13.apply(DataSource.scala:554) в org.apache.spark.sql.execution.datasources.DataSource$$anonfun$25$$anonfun$apply$13.apply(DataSource.scala:554) в scala.util .Try$.apply(Try.scala:192) в org.apache.spark.sql.execution.datasources.DataSource$$anonfun$25.apply(DataSource.scala:554) в org.apache.spark.sql.execution. datasources.DataSource$$anonfun$25.apply(DataSource.scala:554) в scala.util.Try.orElse(Try.scala:84) в org.apache.spark.sql.execution.datasources.DataSource$.lookupDataSource(DataSource .скала:554)

Как обойти эту ошибку и подключиться к моей базе данных Cloudant?


person Wieland    schedule 08.07.2017    source источник


Ответы (1)


Должно быть, возникла какая-то проблема, которая привела к отсутствию облачного драйвера, который обычно по умолчанию присутствует в DSX Notebook. Перейдите на ядро ​​​​python 2.0 и spark 2.1 и запустите эту однократную установку (для каждой службы spark) облачного коннектора, чтобы она была доступна для всех ваших ядер spark 2.0+.

!pip install --upgrade pixiedust

import pixiedust

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

Перезапустите ядро ​​один раз.

Затем измените ядро ​​на ядро ​​scala, а затем запустите код подключения к облаку.

Спасибо, Чарльз.

person charles gomes    schedule 10.07.2017