取消
顯示的結果
而不是尋找
你的意思是:

δ表插入-磚社區

weldermartins
尊敬的貢獻者

你好,

我試圖用插入通過三角洲湖後,文檔,但命令不更新或插入新行。

場景:我的源表分離銅層和更新或插入在銀層。

從三角洲。表* 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()

9回複9

weldermartins
尊敬的貢獻者

@Werner Stinckens事實上,青銅表中插入的信息,在銀層,將收到的更新或插入銅表。

werners1
尊敬的貢獻者三世

所以如果銅表包含您想要的新更新的數據傳播到銀表,您應該創建一個從青銅df的更新表(你使用銀表)

下做一個合並到銀表使用更新(青銅)。

這應該工作。

@Werner Stinckens但upsert已經設置了兩個表,我不明白為什麼我應該設置一遍。

image.png

weldermartins
尊敬的貢獻者

我設法找到解決方案。在插入和更新我設定的目標。

坦克@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 ()

werners1
尊敬的貢獻者三世

這就是我試圖解釋。不錯的工作!

歡迎來到磚社區:讓學習、網絡和一起慶祝

加入我們的快速增長的數據專業人員和專家的80 k +社區成員,準備發現,幫助和合作而做出有意義的聯係。

點擊在這裏注冊今天,加入!

參與令人興奮的技術討論,加入一個組與你的同事和滿足我們的成員。

Baidu
map