我希望从一个不同的databricks实例连接到一个databricks实例中的一个增量湖。我已经从downloads 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从到处看,我似乎需要注册driver-class-path,但我找不到一种方法来工作。
我尝试了以下代码,但我的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中没有主清单属性
发布于 2021-07-14 14:59:04
如果你想这样做(实际上不推荐),那么你只需要把这个库上传到DBFS,并把它附加到cluster via UI or the init script上。之后,它将对驱动程序和执行器都可用。
但实际上,据我所知,您的数据存储在DBFS的默认位置(所谓的DBFS根目录)。但是不建议将数据存储在DBFS根目录中,文档中指出了这一点:
写入装载点路径(/mnt)的
数据存储在DBFS根目录之外。即使DBFS根目录是可写的,Databricks 也建议您将数据存储在挂载的对象存储中,而不是DBFS根目录中。 DBFS根目录不适用于生产客户数据。
因此,您需要在现有的存储帐户和mount it to the Databricks workspace中创建一个单独的存储帐户或容器-这可以在多个工作区中完成,因此您将解决多个工作区之间的数据共享问题。这是在任何云中部署Databricks的标准建议。
https://stackoverflow.com/questions/68365231
复制相似问题