python-3.x - 使用 Databricks 为 Scala 使用 Merge for Scala 向表中插入
问题描述
使用 Databricks Delta Table,您可以使用合并操作将数据从源表、视图或 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。
推荐阅读
- java - 该类型的方法 FileInputStream(File) 未定义
- laravel - 由 api 提供的 Laravel 网站
- python - Twinx/Secondary-y:不要从第一种颜色开始
- javascript - C# UTC 时间为毫秒
- visual-studio-code - VSCode - 将文件类型图标添加到 QuickPick 列表
- django - 使用 Django 模型进行简单查询
- python - 为什么在 python 中涉及 np.NaN 的逻辑和/或操作中的顺序很重要?
- python - 使用 pdfrw 从 pdf 模板填充字段后,在 python 生成的 pdf 中 TextColor 设置为不可见
- python - 通过 Python 在第二行的 CSV 中插入新行
- sql - REGEXP_REPLACE 不会发生连续模式替换