gpt4 book ai didi

azure - Databricks - 将数据从一个databricks工作区传输到另一个databricks工作区

转载 作者:行者123 更新时间:2023-12-03 01:20:31 27 4
gpt4 key购买 nike

如何转换 databricks 工作区 1 (DBW1) 中的数据,然后将其推送(发送/保存表)到另一个 databricks 工作区 (DBW2)?

在我安装的 DBW1 上 this JDBC 驱动程序。

然后我尝试了:

(df.write
.format("jdbc")
.options(
url="jdbc:spark://<DBW2-url>:443/default;transportMode=http;ssl=1;httpPath=<http-path-of-cluster>;AuthMech=3;UID=<uid>;PWD=<pat>",
driver="com.simba.spark.jdbc.Driver",
dbtable="default.fromDBW1"
)
.save()
)

但是,当我运行它时,我得到:

java.sql.SQLException: [Simba][SparkJDBCDriver](500051) ERROR processing query/statement. Error Code: 0, SQL state: org.apache.hive.service.cli.HiveSQLException: Error running query: org.apache.spark.sql.catalyst.parser.ParseException: 

如何正确执行此操作?

注意:每个 DBW 都位于不同的订阅中。

最佳答案

从我的角度来看,更具可扩展性的方法是直接写入 ADLS,而不是使用 JDBC。但这需要按如下方式完成:

  • 您需要有一个单独的存储帐户来存储您的数据。无论如何,使用 DBFS Root 来存储实际数据 isn't recommended因为它无法从外部访问 - 这使得迁移等事情变得更加复杂。

  • 您需要有一种方法来访问该存储帐户( ADLSBlob storage )。您可以直接使用访问数据(通过 abfss://wasbs:// URL)

  • 在目标工作区中,您只需为写入的数据创建一个表 - 所谓的 unmanaged table 。就这样做(参见doc):

create table <name>
using delta
location 'path_or_url_to data'

关于azure - Databricks - 将数据从一个databricks工作区传输到另一个databricks工作区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70742186/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com