问题描述
使用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。