Azure Databricks中Create or Replace Table脚本更新问题咨询
问题解决:Delta Lake表更新脚本的正确写法
- 你当前的两段语句存在逻辑冲突且写法不规范,导致无法正常更新表。以下是针对性修正方案:
合并逻辑,使用
CREATE OR REPLACE TABLE结合Delta Lake语法
若需要覆盖更新已存在的表(包括指定存储路径的Delta表),直接用完整的CREATE OR REPLACE TABLE语句替代分开的片段,写法如下:CREATE OR REPLACE TABLE tablexxx USING DELTA LOCATION '$datalake/location';该语句的作用:
- 若目标表已存在(无论原格式是什么),会直接替换为指定路径的Delta表
- 若目标表不存在,则创建指定路径的Delta表
仅需创建不存在的表时,保留
IF NOT EXISTS
要是你的需求是仅在表不存在时创建、不更新已有表,保留IF NOT EXISTS即可,但要保证语句完整性:CREATE TABLE IF NOT EXISTS tablexxx USING DELTA LOCATION '$datalake/location';避免执行两段独立的建表语句
你原来的create or replace table tablexxx;是无存储格式和路径的空建表语句,后续执行带Delta路径的IF NOT EXISTS语句会出现以下问题:- 第一段语句会先创建一个默认格式的空表
- 第二段语句因为检测到表已存在,不会执行任何操作,自然无法将表更新为Delta格式
内容的提问来源于stack exchange,提问作者RubenSo
相关产品推荐
相关产品推荐

