我沒有試過,但我懷疑它會失敗插入相同的消息,因為加州大學。dl_id是一些空行和“whenNotMatchedInsertAll”將試圖插入dl_id字段的值,而不是生成一個(如果它被用戶提供)。
同時我發現了一個解決方案:顯式地設置列映射和不包括一個用於“dl_id”。
除了dl_id cols2update dict和列映射,它的工作原理。
t.alias (ec) .merge (df.alias(加州大學),“電子商務。dl_id = uc.dl_id ") \ .whenMatchedUpdate(設置= cols2update) \ .whenNotMatchedInsert(值= cols2update) \ . execute ()