我正在 Snowflake 中构建 StreamLit 应用程序。我最初使用网格编辑器从表中加载数据。用户可以更改某些列中的数据。当用户点击提交按钮时,我想在下面的合并命令中合并表中的数据(dataset.merge(updated_dataset ...)。我能够更新单个列= Column1(下面的代码适用于此)。但我还想更新 Column2、Column3 列(源数据帧和目标数据帧都具有相同的结构、列名称等)。 我需要使用什么语法才能更新下面代码行中的 3 个(Column1、Column2、Column3)列。
dataset.merge(updated_dataset, (dataset["Id"] == updated_dataset["Id"]), [when_matched().update({"Column1": updated_dataset["Column1"]})])
下面是更多相同的代码块
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)
...
#Below works for updating single column, I am not able to figure out how to be able to update Column1, Column2, Column3 from the both identical dataframes
dataset.merge(updated_dataset, (dataset["Id"] == updated_dataset["Id"]), [when_matched().update({"Column1": updated_dataset["Column1"]})])
您是否尝试过使用下面的逗号分隔列
dataset.merge(updated_dataset, (dataset["Id"] == updated_dataset["Id"]), [when_matched().update({"Column1": updated_dataset["Column1"],"Column2": updated_dataset["Column2"],"Column3": updated_dataset["Column3"]})])