【发布时间】:2020-11-04 12:38:55
【问题描述】:
我试图将 Databricks(Azure 上的存储)中的现有表转换为 Delta。根据here 提供的信息,这很简单,我写了 2 个sql 声明如下:
convert to delta default.tableName
convert to delta parquet.`dbfs:/path/to/storage/`
语句根据输出消息运行OK。但是,当我尝试desc 表时,我发现Provider 仅是parquet。为了进行验证,我在表上运行了delete 操作以获取一些记录,这给了我错误:
A transaction log for Databricks Delta was found at `dbfs:/path/to/storage/default.db/tableName/_delta_log`,
but you are trying to read from `dbfs:/path/to/storage/default.db/tableName` using format("parquet"). You must use
'format("delta")' when reading and writing to a delta table.
不知道这里出了什么问题。有什么想法吗?
【问题讨论】:
-
您使用了哪个语句?表名版本还是dbfs路径版本?
标签: apache-spark-sql databricks azure-databricks delta-lake