如何使用 Pyspark 在 Databricks 中合并 Hive 表中的记录?

Posted

技术标签:

【中文标题】如何使用 Pyspark 在 Databricks 中合并 Hive 表中的记录?【英文标题】:How to Merge records in Hive table in Databricks using Pyspark? 【发布时间】:2020-09-04 09:16:08 【问题描述】:
%sql
MERGE INTO Employee as t
USING updates as s
ON s.Position = t.Position
WHEN MATCHED THEN
  UPDATE SET 
  name=s.name,
  age=s.age,
  salary=s.salary,
  IsDelta=s.IsDelta,
  Modified=s.Modified,
  Created=s.Created
  address = updates.address
WHEN NOT MATCHED
  THEN INSERT (Position, name, age, salary, IsDelta, Modified, Created) VALUES (s.Position,s.name,s.age,s.salary,s.IsDelta,s.Modified,s.Created)

对于上面的代码,我得到了错误:SQL 语句出错:AnalysisException: MERGE destination only support Delta sources。

【问题讨论】:

【参考方案1】:

很遗憾,Databricks 仅支持更新 delta(delta 湖)表。

错误消息Error in SQL statement: AnalysisException: MERGE destination only supports Delta sources 表示您尝试在非增量表上进行更新。

【讨论】:

是的,问题是由于 delta 表造成的。谢谢 如果我的回答对你有帮助,你可以accept it as an answer。这对其他社区成员可能是有益的。谢谢。

以上是关于如何使用 Pyspark 在 Databricks 中合并 Hive 表中的记录?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Python / Pyspark 在 Databricks 笔记本中合并数据帧

如何使用 Pyspark 在 Databricks 中合并 Hive 表中的记录?

如何在 Azure Databricks PySpark 中执行存储过程?

如何在 Databricks pyspark 中导入 Excel 文件

使用pyspark,spark + databricks时如何将完全不相关的列添加到数据框中

在databricks中使用cobrix处理大型机文件-Pyspark python 3