你好,
我試圖用插入通過三角洲湖後,文檔,但命令不更新或插入新行。
場景:我的源表分離銅層和更新或插入在銀層。
從三角洲。表* deltaTableVendas = DeltaTable進口。forPath(火花,' / user /蜂巢/倉庫/ bronze.db /有賣的)deltaTableVendasUpdates = DeltaTable。forPath(火花,' / user /蜂巢/倉庫/ silver.db /有賣的)dfUpdates = deltaTableVendasUpdates.toDF () deltaTableVendas.alias(有賣)\ .merge (dfUpdates.alias(“更新”),有賣。numero_transacao =更新。numero_transacao”) \ .whenMatchedUpdate(設置= {“numero_transacao”:“更新。numero_transacao”、“numped”:“更新。numped”、“codcli”:“更新。codcli”、“codprod”:“更新。codprod”、“data_venda”:“更新。data_venda”、“quantidade”:“更新。quantidade”、“英勇”:“更新。英勇"})\ .whenNotMatchedInsert(值= {“numero_transacao”:“更新。numero_transacao”、“numped”:“更新。numped”、“codcli”:“更新。codcli”、“codprod”:“更新。codprod", "data_venda": "updates.data_venda", "quantidade": "updates.quantidade", "valor": "updates.valor" } ) \ .execute()
@Werner Stinckens事實上,青銅表中插入的信息,在銀層,將收到的更新或插入銅表。
我設法找到解決方案。在插入和更新我設定的目標。
坦克@Werner Stinckens !
delta_df = DeltaTable。forPath(火花,“dbfs: / mnt /銀/有賣的)delta_df.alias(“目標”)。合並(源= bronzedf.alias(“源”),條件= '的目標。numero_transacao =來源。numero_transacao”) \ .whenMatchedUpdate(設置= {:“numero_transacao來源。numero_transacao”、“numped”:“源。numped”、“codcli”:“源。codcli”、“codprod”:“源。codprod”、“data_venda”:“源。data_venda”、“quantidade”:“源。quantidade”、“英勇”:“源。英勇"})\ .whenNotMatchedInsert(值= {:“numero_transacao來源。numero_transacao”、“numped”:“源。numped”、“codcli”:“源。codcli”、“codprod”:“源。codprod”、“data_venda”:“源。data_venda”、“quantidade”:“源。quantidade”、“英勇”:“源。英勇"})\ . execute ()