azure - 访问另一个 Azure Databricks 中的现有 Delta Lake 表数据

标签 azure databricks delta-lake

我正在使用 Azure Databricks 并将数据存储在 Delta Lake 表中。由于某种原因,我想在同一网络中创建一个新的数据 block ,并从这个新创建的数据 block 访问现有的 Delta Lake 表。

我尝试安装到相同的存储路径,并在运行查询如果不存在则创建表时收到以下错误:

Error in SQL Statement: Analysis Exception: Cannot create table The associated location ('dbfs:/mnt/[REDACTED]/processed/leads') is not empty but it's not a Delta table

该位置包含增量表和文件,但无法使用新的数据 block 。

当我尝试从表中选择*时,它会显示

Error in SQL statement: AnalysisException: Table or view not found: leads_enrichment.leads;
'Project [*]

大多数地方都显示要删除表/创建或替换,但我不能丢失 Delta Lake 中的日期。

任何人都可以建议一种访问现有增量表和新创建的数据 block 中的数据的方法吗?

最佳答案

从增量表中选择时(如果位置位于存储挂载路径中),请使用以下语法。

%sql
select * from delta. `dbfs:/mnt/bricks3data/table1`;

enter image description here

I tried mounting to the same storage path and while running the query

因此,您将增量表从一个数据 block 存储到存储帐户,并尝试通过装载路径从另一个数据 block 访问这些增量表。

这些是我的增量表,存储在一个数据 block 的存储帐户中。

enter image description here

我已将其安装在另一个 databricks 中,我的安装点是 bricks3data。您可以使用以下代码将增量表存储在新数据 block 中。

%python
from delta.tables import *
for i in dbutils.fs.ls("/mnt/bricks3data/"):
    table_path=i.path
    if(DeltaTable.isDeltaTable(spark,table_path)):
        table_name=table_path.split("/")[-2]
        print("Table_name : ",table_name)
        #Create delta table with same name from the mount path
        spark.sql("create table if not exists {name} as select * from delta. `{path}`".format(name=table_name,path=table_path))
        print(table_name," saved as delta table from storage")

enter image description here

存储的表:

enter image description here

关于azure - 访问另一个 Azure Databricks 中的现有 Delta Lake 表数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75917408/

相关文章:

azure - 我无法从不同的 VS2012 发布 - 错误指向服务运行时不存在?

apache-spark - 如何在 Databricks(社区版)上本地保存 Great_Expectations 套件

python - 在 Pandas 中根据条件添加行

Databricks Lakehouse Medallion 架构 Python 示例

Azure API 管理记录请求和响应正文

python - Azure:使用容器创建存储帐户并在 Python 中将 blob 上传到其中

c# - 仅需要通过 INTRANET 访问 Azure Web 服务

python - 如何从 Spark (Databricks) JDBC python 在 SQL 服务器上运行存储过程?

delta-lake - Delta Lake 2.0 是否与之前的版本(例如 1.2)兼容?

delta-lake - 如何更改 Delta 表的添加列?