首页 > 解决方案 > 我的数据块中的表架构更改不在我的视图中

问题描述

我在 Azure Databricks 中创建了一个表。

%sql
Create Table db_xmp_ed_dimensions_map.Test1
(
  ID int,
  Name varchar(100)
);

Insert into db_xmp_ed_dimensions_map.Test1 values(1,'test');

%sql
Create view db_xmp_ed_dimensions_map.v_Test1
AS 
SELECT * FROM db_xmp_ed_dimensions_map.Test1

当我运行以下两个查询时,我得到了这些结果。

在此处输入图像描述

如果我在我的表中插入一个新行,我的视图中有该行

%sql
Insert into db_xmp_ed_dimensions_map.Test1 values(2,'test2');

在此处输入图像描述

我这里有问题。如果我通过添加一个新列来更改我的表架构,我的视图中没有它。

%sql
ALTER TABLE db_xmp_ed_dimensions_map.Test1
  ADD COLUMN Family VARCHAR(10)

在此处输入图像描述

但是如果我在我的视图上运行查询我没有我的新列

在此处输入图像描述

我通过运行此命令验证了我的视图创建命令

%sql
SHOW CREATE TABLE  db_xmp_ed_dimensions_map.v_Test1

我有这个命令:

CREATE VIEW `db_xmp_ed_dimensions_map`.`v_Test1` **( `ID`, `Name`)** TBLPROPERTIES ( 
'transient_lastDdlTime' = '1626980188') AS SELECT * FROM db_xmp_ed_dimensions_map.Test1

正如您在我的视图中看到的那样,我对列名进行了硬编码。我想正因为如此,我看不到我的新专栏。

除了重新创建我的视图之外,还有其他方法可以解决此问题吗?

标签: viewapache-spark-sqlazure-databricks

解决方案


推荐阅读