REPLACE TABLE AS SELECT 不适用于镶木地板,但它适用于 delta

问题描述 投票:0回答:1

我正在开发 Azure Databricks,Databricks 运行时版本是 -

14.3 LTS (includes Apache Spark 3.5.0, Scala 2.12)
。我面临以下问题。

假设我有一个名为

v1
的视图和一个通过以下命令创建的数据库
f1_processed

CREATE DATABASE IF NOT EXISTS f1_processed
LOCATION "abfss://[email protected]/"

然后,如果我运行以下命令,它将运行良好。

CREATE OR REPLACE TABLE f1_processed.circuits
AS
SELECT * FROM v1;

但是,如果我指定如下代码所示的格式

CREATE OR REPLACE TABLE f1_processed.circuits
USING PARQUET
AS
SELECT * FROM v1;

抛出错误

[UNSUPPORTED_FEATURE.TABLE_OPERATION] The feature is not supported: 
Table `spark_catalog`.`f1_processed`.`circuits` does not support REPLACE TABLE AS SELECT. 
Please check the current catalog and namespace to make sure the qualified table name is expected, 
and also check the catalog implementation which is configured by "spark.sql.catalog". SQLSTATE: 0A000

从第一条命令看出,支持REPLACE TABLE AS SELECT,报错是错误的。如有任何帮助,我们将不胜感激。

apache-spark-sql azure-databricks
1个回答
0
投票

CREATE OR REPLACE 命令仅支持 DELTA 表。它在 databricks 的文档here中指定。内容如下。

更换

如果指定,则替换表及其内容(如果已存在)。 此子句仅支持 Delta Lake 表

该错误可能不会直接说明这一点,但它巧妙地暗示了表格的镶木地板格式。语句

Table 'spark_catalog'.'f1_processed'.'circuits' does not support REPLACE TABLE AS SELECT.
表示由于表是以 parquet 格式创建的,因此无法使用
REPLACE...
命令。

© www.soinside.com 2019 - 2024. All rights reserved.