assertionerror:Assert失败:databricks中没有deletefromtable的计划

zyfwsgd6  于 2021-07-09  发布在  Spark
关注(0)|答案(1)|浏览(538)

是否有任何原因使此命令运行良好:

%sql SELECT * FROM Azure.Reservations WHERE timestamp > '2021-04-02'

返回2行,而下面是:

%sql DELETE FROM Azure.Reservations WHERE timestamp > '2021-04-02'

失败原因:
sql语句中的错误:assertionerror:assertion失败:deletefromtable没有计划(时间戳#394>16173216000000)
?
我是databricks的新手,但我确信我在另一个表上运行了类似的命令(没有where子句)。表是基于Parquet文件创建的。

yvfmudvl

yvfmudvl1#

DELETE FROM (同样地 UPDATE ,或 MERGE )在Parquet文件上不支持-现在在databricks上它支持delta格式。您可以使用convert to delta将您的Parquet文件转换为delta,然后此命令将适用于您。
另一种实现方法是读取Parquet文件,过滤掉要保留的行,然后覆盖Parquet文件。

相关问题