You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Snowflake StreamLit应用中Snowpark Merge多列更新语法问询

多列更新的Snowflake Snowpark Merge语法修改方案

只需在when_matched().update()的字典参数中,添加所有需要更新的列映射即可。因为你的源数据集(updated_dataset)和目标数据集(dataset)列名、结构完全一致,直接把要更新的三列都放入字典:

修改后的核心代码片段:

dataset.merge(
    updated_dataset,
    (dataset["Id"] == updated_dataset["Id"]),
    [
        when_matched().update({
            "Column1": updated_dataset["Column1"],
            "Column2": updated_dataset["Column2"],
            "Column3": updated_dataset["Column3"]
        })
    ]
)

整合到完整代码中的示例:

import streamlit as st
from snowflake.snowpark.context import get_active_session
import datetime
from datetime import timedelta, date
import dateutil
from dateutil.relativedelta import relativedelta
import time
import pandas as pd
from snowflake.snowpark.functions import when_matched

...
dataset = session.table("TEMP_TEST_TABLE")
...
updated_dataset=session.create_dataframe(edited)
...
# 同时更新Column1、Column2、Column3的merge语句
dataset.merge(
    updated_dataset,
    (dataset["Id"] == updated_dataset["Id"]),
    [
        when_matched().update({
            "Column1": updated_dataset["Column1"],
            "Column2": updated_dataset["Column2"],
            "Column3": updated_dataset["Column3"]
        })
    ]
)

内容的提问来源于stack exchange,提问作者Gokhan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 20:14:51