Невозможно загрузить данные из Cloudant в фрейм данных Python/Spark в Watson Studio Notebook

Я пытаюсь загрузить данные из Cloudant DB в фрейм данных Python/Spark в среде Python и Spark в Watson Studio. Я выполнил шаги, упомянутые в этой ссылке, и занялся процедурой 3: Шаг 5. У меня уже есть облачная БД с именем twitterdb, и я пытаюсь загрузить данные отсюда.

Скриншот ошибки

Скриншот ошибки при загрузке данных из облачной БД

1 ответ

Глядя на ошибку, я вижу, что вы установили неправильный Cloudant Connector в сравнении с той версией Spark, которая доступна в Spark As Service от IBM Cloud. Spark As Service предлагает версию Spark 2.1.2.

Теперь из учебника один из шагов указывает на установку Spark Cloudant Package.

pixiedust.installPackage("org.apache.bahir:spark-sql-cloudant_2.11:0")

который, я думаю, должен устанавливать неправильную версию коннектора spark cloudant из-за ошибки, которую он пытается использовать.

/gpfs/global_fs01/sym_shared/YPProdSpark/user/s97c-0d96df4a6a0cd8-8754c7852bb5/data/libs/spark-sql-cloudant_2.11-2.2.1.jar

Правильная версия для установки / использования будет https://mvnrepository.com/artifact/org.apache.bahir/spark-sql-cloudant_2.11/2.1.2

Теперь важной частью является то, что Spark Cloudant разъем уже установлен по умолчанию. /usr/local/src/dataconnector-cloudant-2.0/spark-2.0.0/libs/

Вы должны удалить установленный пользователем пакет, используя pixiedust.

pixiedust.packageManager.uninstallPackage("org.apache.bahir:spark-sql-cloudant_2.11:2.2.1")

Затем перезапустите ядро ​​и затем используйте облачный соединитель, как описано, для чтения из вашей облачной базы данных.

spark = SparkSession\
    .builder\
    .appName("Cloudant Spark SQL Example in Python using dataframes")\
    .config("cloudant.host","ACCOUNT.cloudant.com")\
    .config("cloudant.username", "USERNAME")\
    .config("cloudant.password","PASSWORD")\
    .config("jsonstore.rdd.partitions", 8)\
    .getOrCreate()

# ***1. Loading dataframe from Cloudant db
df = spark.read.load("n_airportcodemapping", "org.apache.bahir.cloudant")
df.cache() 
df.printSchema()

Ссылка: - https://github.com/apache/bahir/tree/master/sql-cloudant

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

Другие вопросы по тегам