JDBC数据块到数据块的连接

2024-05-12 14:20:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我希望从另一个databricks实例连接到一个databricks实例中的delta lake。我已经从下载page下载了sparksimba jar。当我使用以下代码时:

result = spark.read.format("jdbc").option('user', 'token').option('password', <password>).option('query', query).option("url", <url>).option('driver','com.simba.spark.jdbc42.Driver').load()

我得到以下错误:

Py4JJavaError: An error occurred while calling o287.load.: java.lang.ClassNotFoundException: com.simba.spark.jdbc42.Driver

从周围的阅读来看,我似乎需要注册驱动程序类路径,但我找不到一种方法来实现这一点

我尝试了以下代码,但我的databricks环境中不存在bin/pyspark目录:

%sh bin/pyspark --driver-class-path $/dbfs/driver/simbaspark/simbaspark.jar --jars /dbfs/driver/simbaspark/simbaspark.jar

我也尝试过:

java -jar /dbfs/driver/simbaspark/simbaspark.jar

但是我得到了这个错误:在dbfs/driver/simbaspark/simbaspark中没有主清单属性


Tags: 实例代码comurldriverpasswordqueryspark
1条回答
网友
1楼 · 发布于 2024-05-12 14:20:34

如果您想这样做(实际上不建议这样做),那么您只需要将这个库上载到DBFS,并将它附加到cluster via UI or the init script。之后,它将为驾驶员和驾驶员提供;遗嘱执行人

但实际上,据我所知,您的数据存储在DBFS的默认位置(所谓的DBFS根)。但不建议将数据存储在DBFS根目录中,文档中指出了这一点:

Data written to mount point paths (/mnt) is stored outside of the DBFS root. Even though the DBFS root is writeable, Databricks recommends that you store data in mounted object storage rather than in the DBFS root. The DBFS root is not intended for production customer data.

因此,您需要在现有存储帐户中创建一个单独的存储帐户或容器,mount it to the Databricks workspace-这可以对多个工作区执行,因此您将解决多个工作区之间的数据共享问题。这是在任何云中部署Databricks的标准建议

相关问题 更多 >