Databricks DELTA CTAS 与 LOCATION 使用 %sql

Databricks DELTA CTAS with LOCATION using %sql

DELTA 没有 CREATE TABLE LIKE。它确实有 CTAS.

我只想复制table的定义,还要指定LOCATION.

例如这不起作用:

CREATE TABLE IF NOT EXISTS NEW_CUSTOMER_FEED 
AS SELECT * from NEW_CUSTOMER_FEED WHERE 1 = 0 
LOCATION '/atRest/data'

我错过了什么?

如果您在 syntax 中检查 CREATE TABLE USING,那么您会看到 AS SELECT ... 应该是所有选项之后的最后一个子句。所以在你的情况下应该是

CREATE TABLE IF NOT EXISTS NEW_CUSTOMER_FEED 
LOCATION '/atRest/data'
AS SELECT * from NEW_CUSTOMER_FEED WHERE 1 = 0 

P.S。您可以 LIMIT 0...

而不是 WHERE 1=0