将sparkDataframe合并到现有的acid事务配置单元表中?

nbysray5  于 2021-05-27  发布在  Spark
关注(0)|答案(1)|浏览(297)

考虑配置单元中的一个简单merge语句:

merge into
  base_table A 
using
  merge_from_table B 
on
  (A.id = B.id)
when matched then update set 
  A.lastname = B.lastname

现在想象一下:
基本配置单元表是一个事务配置单元表(启用了acid操作)。
不是从表中合并表,而是在spark中生成一个Dataframe
问题1:有没有办法直接将Dataframe合并到配置单元表中?
如果问题1的答案是“否”,那么:
问题2:现在我能想到的最好方法是将Dataframe写入一个临时的hive表,然后使用上面的hive语句合并到我的基表中。有更好的方法吗?

mrfwxfqh

mrfwxfqh1#

与其说是答案,不如说是验证。
假设您不使用databricks中的delta格式
你确实想重新声明数据
您不想在spark中使用自己的增量计算和优化技术来限制处理
并且您不希望将数据插入到“当前”分区中
那么。spark不支持ddl更新
因此,下一个最佳解决方案实际上是最简单的。

相关问题