使用Databricks将Merge for Scala升级到表中

问题描述

使用Databricks Delta表,您可以使用合并操作将数据从源表,视图或DataFrame向上插入到目标Delta表中。此操作类似于sql MERGE INTO命令,但对删除具有附加支持,并在更新,插入和删除中具有附加条件。

我可以使用以下Python代码成功执行合并:

from delta.tables import *

deltaTable = DeltaTable.forPath(spark,delta_path)

(deltaTable
  .alias("t")
  .merge(loanUpdates.alias("s"),"t.loan_id = s.loan_id")
  .whenMatchedUpdateall()
  .whenNotMatchedInsertAll()
  .execute())
  

但是,我需要使用Scala。因此,有人可以提供将在Scala中执行相同操作的代码。基本上,我帮助转换Python代码Scala。

这里提供了一些示例,https://docs.databricks.com/delta/delta-update.html#language-scala,但是我希望能够使用上面的Python代码

解决方法

根据您的评论,loanUpdates是一个字符串,但必须是一个数据框。您可以使用以下命令将CSV加载到Spark中:

val loanUpdatesDf = spark.read.csv(loanUpdates)

您可能需要使用其他选项才能正确读取csv。