在 Databricks 中将云数据源注册为全局表而不进行复制
Posted
技术标签:
【中文标题】在 Databricks 中将云数据源注册为全局表而不进行复制【英文标题】:Registering a cloud data source as global table in Databricks without copying 【发布时间】:2020-11-21 12:16:08 【问题描述】:鉴于我在 Azure 存储中有一个 Delta 表:
wasbs://mycontainer@myawesomestorage.blob.core.windows.net/mydata
这可从我的 Databricks 环境中获得。我现在希望通过全局表获得这些数据,自动加载到所有集群并在“数据”部分中可见。
我可以通过复制轻松做到这一点:
spark.read\
.load("wasbs://mycontainer@myawesomestorage.blob.core.windows.net/mydata")\
.write.saveAsTable("my_new_table")
但这很昂贵,我需要偶尔运行它(不过,结构化流式传输会有所帮助)。 但是是否可以直接将源注册为全局表,而不必复制所有文件?
【问题讨论】:
【参考方案1】:您可以在 databricks 笔记本单元格中使用 CREATE TABLE USING 语句:
%sql
CREATE TABLE IF NOT EXISTS default.my_new_table
USING DELTA
LOCATION "wasbs://mycontainer@myawesomestorage.blob.core.windows.net/mydata"
表 my_new_table 应该出现在 databricks 数据选项卡中的默认数据库中。
【讨论】:
这就是我想要的。谢谢:-)以上是关于在 Databricks 中将云数据源注册为全局表而不进行复制的主要内容,如果未能解决你的问题,请参考以下文章
企业版Spark Databricks + 企业版Kafka Confluent 联合高效挖掘数据价值
如何在 Azure Databricks SQL 中将字段值转换为逗号分隔
如何在 Azure Databricks 中使用 JDBC 从 PostgreSQL 读取表数据?