Databricks:使用增量表路径创建表,出现 AnalysisException:指定的架构与 dbfs:/mnt/datalake/

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

我有一个增量表路径。基于此,我尝试使用

创建表
create table if not exists dbo.DimCustomer
(CustomerSK BIGINT GENERATED BY DEFAULT AS IDENTITY,
first_name varchar(128),
 last_name  varchar(128),
  HashKey       binary,
  DWIsEncryptedFl tinyint,
  DWCreateDt timestamp NOT NULL,
  DWLastUpdateDt timestamp NOT NULL)
USING DELTA location '/mnt/datalake/prepped/dimcustomer.delta/'  
  TBLPROPERTIES ('delta.columnMapping.mode' = 'name',     'delta.minReaderVersion' = '2',     'delta.minWriterVersion' = '5')

这给出了 AnalysisException:

The specified schema does not match the existing schema at dbfs:/mnt/datalake/prepped/dimcustomer.delta

并且建议使用 String 作为名字、姓氏。 但是,当我使用 String 替换时,它再次失败并出现相同的错误,但这次它建议使用 varchar(128)

无法解决问题。 任何帮助将不胜感激。

尝试诊断错误并提供解决方案,但不起作用

apache-spark apache-spark-sql databricks azure-databricks
1个回答
0
投票

首先,创建表而不指定列,如下所示

create table if not exists dbo.DimCustomer 
USING DELTA location '/mnt/datalake/prepped/dimcustomer.delta/'  
TBLPROPERTIES ('delta.columnMapping.mode' = 'name','delta.minReaderVersion' = '2','delta.minWriterVersion' = '5')

从该表中找出缺少的内容。如果您需要强制执行数据类型,请计算出大小并重新创建相同的表。

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