Delta Live Table - 无法重新定义数据集

问题描述 投票:0回答:1

我是 Delta Live Table 的新手。

我正在尝试根据 databricks 教程创建一个增量实时表。

我创建了一个笔记本并附加了一个交互式集群 -DBR 14.3-LTS。

我正在运行以下代码。

当我第一次运行它时,它运行成功了。

当我第二次运行单元格时,我收到错误 - AnalysisException:无法重新定义数据集“sales_orders_raw”

您能帮我理解为什么会发生这种情况吗?


from pyspark.sql.functions import *
from pyspark.sql.types import *
import dlt

@Dlt.create_table(
  comment="The raw sales orders, ingested from /databricks-datasets.",
  table_properties={
    "myCompanyPipeline.quality": "bronze",
    "pipelines.autoOptimize.managed": "true"
  }
)
def sales_orders_raw():
  return (
    spark.readStream.format("cloudFiles") \
      .option("cloudFiles.schemaLocation", "/tmp/john.odwyer/pythonsalestest") \
      .option("cloudFiles.format", "json") \
      .option("cloudFiles.inferColumnTypes", "true") \
      .load("/databricks-datasets/retail-org/sales_orders/")
  )

你能帮我理解我做错了什么吗

databricks live delta
1个回答
0
投票

添加答案,以便可以关闭此问题。

你没有做错任何事。第一次运行它没有错误意味着你的语法是正确的。您无法直接从笔记本运行 DLT 管道,如此处所述。

Delta Live Tables 查询主要在 Databricks 中实现 笔记本电脑,但 Delta Live Tables 并非设计用于运行 在笔记本单元格中交互。执行包含 Delta 的单元格 Databricks 笔记本中的实时表语法会导致错误 信息。要运行查询,您必须将笔记本配置为 管道的一部分。

既然您知道语法是正确的,您应该尝试从 DLT 管道执行笔记本。另外,您的 Dlt.create_table 应该是 dlt.table。 @Dlt 是错误的语法,并且 @dlt.create_table 已被弃用。现在仅使用@dlt.table,如here所述。

© www.soinside.com 2019 - 2024. All rights reserved.