如何在数据科学体验中使用SparkSQL连接到Cloudand/CouchDB?



以前CouchDB通过cloudant连接器支持:

https://github.com/cloudant-labs/spark-cloudant

但是这个项目指出它不再活跃,它搬到了Apache Bahir:

http://bahir.apache.org/docs/spark/2.1.1/spark-sql-cloudant/

因此,我使用以下命令在 Scala 笔记本中安装了 JAR:

%添加罐 http://central.maven.org/maven2/org/apache/bahir/spark-sql-cloudant_2.11/2.1.1/spark-sql-cloudant_2.11-2.1.1.jar

然后,从 python 笔记本中,重新启动内核后,我使用以下代码进行测试:

spark = SparkSession
.builder
.appName("Cloudant Spark SQL Example in Python using dataframes")
.config("cloudant.host","0495289b-1beb-4e6d-888e-315f36925447-bluemix.cloudant.com")
.config("cloudant.username", "0495289b-1beb-4e6d-888e-315f36925447-bluemix")
.config("cloudant.password","xxx")
.config("jsonstore.rdd.partitions", 8)
.getOrCreate()
# ***1. Loading dataframe from Cloudant db
df = spark.read.load("openspace", "org.apache.bahir.cloudant")
df.cache()
df.printSchema()
df.show()

但我得到:

java.lang.ClassNotFoundException: org.apache.bahir.cloudant.DefaultSource

(完整日志的要点(

有一种解决方法,它应该在各种 jupyther 笔记本环境中运行,并且不是 IBM DataScience Experience 独有的:

!pip install --升级 pixiedust

进口小精灵粉

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

这当然是一种解决方法,一旦等待,就会发布官方答案

编辑:

之后不要忘记重新启动 jupyter 内核

编辑24.12.18: 在没有解决方法的情况下创建了 yt 视频,请参阅评论...稍后也会更新这篇文章...

下面是另一种解决方法。 它已经过测试,可以在DSX Python笔记本中工作:

import pixiedust
# Use play-json version 2.5.9. Latest version is not supported at this time.
pixiedust.installPackage("com.typesafe.play:play-json_2.11:2.5.9")
# Get the latest sql-cloudant library
pixiedust.installPackage("org.apache.bahir:spark-sql-cloudant_2.11:0")
spark = SparkSession
.builder
.appName("Cloudant Spark SQL Example in Python using dataframes")
.config("cloudant.host", host)
.config("cloudant.username", username)
.config("cloudant.password", password)
.getOrCreate()
df = spark.read.load(format="org.apache.bahir.cloudant", database="MY-DB")

相关内容

  • 没有找到相关文章

最新更新