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
相关产品推荐
相关产品推荐

