【问题标题】:Insert If Table Exists in Databricks or Spark SQL如果 Databricks 或 Spark SQL 中存在表,则插入
【发布时间】:2019-11-22 22:27:09
【问题描述】:

我在 Databricks 笔记本上写东西,我需要说以下内容:

%sql

IF EXISTS myTable INSERT OVERWRITE TABLE myTable SELECT * FROM somethingElse

我知道INSERT OVERWRITE 子句有效,但我不确定如何让IF EXISTS 在不中断纯SQL 代码和使用python 的情况下工作(这会使脚本更加混乱)。

【问题讨论】:

    标签: apache-spark-sql databricks


    【解决方案1】:

    很遗憾,Databricks 不支持名为“IF EXISTS”的 DDL。

    你必须使用名为“Drop Table”的命令:

    删除一个表并从文件系统中删除与该表关联的目录,如果这不是一个 EXTERNAL 表。如果要删除的表不存在,则抛出异常。

    如果存在

    如果表不存在,什么都不会发生。

    DROP TABLE [IF EXISTS] [db_name.]table_name
    

    示例:

    DROP TABLE IF EXISTS diamonds;
    
    CREATE TABLE diamonds USING CSV OPTIONS (path "/databricks-datasets/Rdatasets/data-001/csv/ggplot2/diamonds.csv", header "true")
    

    参考:SQL Language Manual 这是 Databricks 中支持的数据定义语言 (DDL) 和数据操作语言 (DML) 构造的完整列表。

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2018-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-19
      • 1970-01-01
      • 2015-08-14
      • 2014-10-23
      相关资源
      最近更新 更多