【问题标题】: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) 构造的完整列表。
希望这会有所帮助。