Databricks 更新表不适用于 orc 格式

Posted

技术标签:

【中文标题】Databricks 更新表不适用于 orc 格式【英文标题】:Databricks update table not working with orc format 【发布时间】:2018-07-03 08:02:52 【问题描述】:

。 我在 hive 元存储中创建了一个 ORC 格式的表,它运行良好。 后来我运行了 UPDATE TABLE 并且该命令失败了。 有没有办法使用 Databricks 实现 UPDATE?

【问题讨论】:

【参考方案1】:

Databricks delta 支持更新、更新插入(合并到)和删除事务支持。表使用“USING DELTA”选项存储,例如。 g.:

CREATE TABLE events (
  edate DATE,
  eventId STRING,
  eventType STRING,
  data DECIMAL)
 USING DELTA
 PARTITIONED BY (date)
LOCATION 'wasbs://adls2@sample.blob.core.windows.net/managedtables/events';

数据存储在带有附加事务日志的 parquet 文件中。详情请见Databrick Delta Guide。

Spark 中的事务不支持 ORC。因此,如果您想更新使用 ORC 选项存储的数据,可以通过创建一个不包括要更新的行的新行集,然后创建一个仅包含具有新值的更新行的第二个行集,然后合并两个行集在一起。

【讨论】:

以上是关于Databricks 更新表不适用于 orc 格式的主要内容,如果未能解决你的问题,请参考以下文章

通过 Databricks 笔记本更改表表名 CONCATENATE 错误

Databricks 火花 UDF 不适用于过滤的数据帧

用于ORC或RC格式的Hive Json SerDE

SQL Server 日期格式不适用于存储过程

大数据:Hive - ORC 文件存储格式

db.execute(更新表)不适用于 Python