DeltaMergeBuilder¶
DeltaMergeBuilder
is a builder interface to describe how to merge data from a source DataFrame into the target delta table (using whenMatched, whenNotMatched, and whenNotMatchedBySource conditions).
In the end, DeltaMergeBuilder
is supposed to be executed to take action.
DeltaMergeBuilder
creates a DeltaMergeInto logical command that is resolved to a MergeIntoCommand runnable logical command (using PreprocessTableMerge logical resolution rule).
Creating Instance¶
DeltaMergeBuilder
takes the following to be created:
- Target DeltaTable
- Source
DataFrame
- Condition
Column
- When Clauses
DeltaMergeBuilder
is created using DeltaTable.merge operator.
Operators¶
whenMatched¶
whenMatched(): DeltaMergeMatchedActionBuilder
whenMatched(
condition: Column): DeltaMergeMatchedActionBuilder
whenMatched(
condition: String): DeltaMergeMatchedActionBuilder
Creates a DeltaMergeMatchedActionBuilder (for this DeltaMergeBuilder
and a condition)
whenNotMatched¶
whenNotMatched(): DeltaMergeNotMatchedActionBuilder
whenNotMatched(
condition: Column): DeltaMergeNotMatchedActionBuilder
whenNotMatched(
condition: String): DeltaMergeNotMatchedActionBuilder
Creates a DeltaMergeNotMatchedActionBuilder (for this DeltaMergeBuilder
and a condition)
whenNotMatchedBySource¶
whenNotMatchedBySource(): DeltaMergeNotMatchedBySourceActionBuilder
whenNotMatchedBySource(
condition: Column): DeltaMergeNotMatchedBySourceActionBuilder
whenNotMatchedBySource(
condition: String): DeltaMergeNotMatchedBySourceActionBuilder
Creates a DeltaMergeNotMatchedBySourceActionBuilder (for this DeltaMergeBuilder
and a condition)
Executing Merge¶
execute(): Unit
execute
creates a merge plan (that is DeltaMergeInto logical command) and resolves column references.
execute
runs PreprocessTableMerge logical resolution rule on the DeltaMergeInto
logical command (that gives MergeIntoCommand runnable logical command).
In the end, execute
executes the MergeIntoCommand logical command.
Creating Logical Plan for Merge¶
mergePlan: DeltaMergeInto
mergePlan
creates a DeltaMergeInto logical command.
mergePlan
is used when DeltaMergeBuilder
is requested to execute.
Creating DeltaMergeBuilder¶
apply(
targetTable: DeltaTable,
source: DataFrame,
onCondition: Column): DeltaMergeBuilder
apply
utility creates a new DeltaMergeBuilder
for the given parameters and no DeltaMergeIntoClauses.
apply
is used for DeltaTable.merge operator.
Adding DeltaMergeIntoClause¶
withClause(
clause: DeltaMergeIntoClause): DeltaMergeBuilder
withClause
creates a new DeltaMergeBuilder
(based on the existing properties, e.g. the DeltaTable) with the given DeltaMergeIntoClause added to the existing DeltaMergeIntoClauses (to create a more refined DeltaMergeBuilder
).
withClause
is used when:
- DeltaMergeMatchedActionBuilder is requested to updateAll, delete and addUpdateClause
- DeltaMergeNotMatchedActionBuilder is requested to insertAll and addInsertClause