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

三角洲時並入插入支持表有一個標識列?

瓦迪姆
新的貢獻者三世

我似乎不能使它工作,我繼續:

DeltaInvariantViolationException: NOT NULL約束違反列:dl_id。

1接受解決方案

接受的解決方案

werners1
尊敬的貢獻者三世

我隻是打字這個解決方案:slightly_smiling_face:因為生成的id被定義為上校總是身份永遠不會被更新。如果你使用UpdateAll將生成一個錯誤。

從列中刪除Id坳被更新。

就是這樣。

在原帖子查看解決方案

8回答說8

werners1
尊敬的貢獻者三世

我認為是支持整個ID列的目的,不提供自己的價值。

我還沒有測試它。

但是你用的是什麼版本的磚呢?你需要一個漂亮的最新版本(10.4 +)。

另外:標識列創建的嗎?

瓦迪姆
新的貢獻者三世

我用11.2運行時。標識列創建:

dl_id BIGINT NOT NULL生成總是像身份

和pyspark代碼插入:

t.alias (ec) .merge (df.alias(加州大學),“電子商務。dl_id = uc.dl_id ") \ .whenMatchedUpdateAll () \ .whenNotMatchedInsertAll () \ . execute ()

werners1
尊敬的貢獻者三世

嗯,ec和加州大學id總是填寫嗎?

瓦迪姆
新的貢獻者三世

“電子商務”——永遠。“加州大學”——不是。因為“加州”可能包含需要附加的新數據。

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

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

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

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

Baidu
map