【问题标题】:AnalysisException: Operation not allowed: `CREATE TABLE LIKE` is not supported for Delta tables;AnalysisException:不允许操作:增量表不支持“CREATE TABLE LIKE”;
【发布时间】:2021-11-12 12:39:59
【问题描述】:
create table if not exists map_table like position_map_view;

虽然使用它却给了我操作不允许的错误

【问题讨论】:

    标签: databricks azure-databricks databricks-sql


    【解决方案1】:

    正如documentation所指出的,你需要使用CREATE TABLE AS,只需在SELECT中使用LIMIT 0:

    create table map_table as select * from position_map_view limit 0;
    

    【讨论】:

    • 这不会保留分区信息
    • 您可以明确指定partitioned by。我知道这并不简单,但仍然可以通过编程方式进行操作,例如将 show create table 与一些文本操作结合起来
    【解决方案2】:

    我没有找到让CREATE TABLE LIKE 工作的简单方法,但我有一个解决方法。在 Databricks 中的 DBR 上,您应该能够使用 SHALLOW CLONE 做类似的事情:

    %sql
    CREATE OR REPLACE TABLE $new_database.$new_table 
    SHALLOW CLONE $original_database.$original_table`;
    

    您需要手动替换$templates。 备注:

    1. 这有一个额外的副作用是保留表格内容以备不时之需。
    2. 具有讽刺意味的是,创建空表要困难得多,并且涉及使用自定义代码操作 @​​987654325@ 语句

    【讨论】:

      猜你喜欢
      • 2018-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-29
      • 2012-01-03
      • 2021-02-10
      • 2021-01-01
      • 2014-11-01
      相关资源
      最近更新 更多