snowflake.snowpark.Table.update¶
- Table.update(assignments: Dict[str, ColumnOrLiteral], condition: Column | None = None, source: DataFrame | None = None, *, statement_params: Dict[str, str] | None = None, block: bool = True) UpdateResult [source]¶
- Table.update(assignments: Dict[str, ColumnOrLiteral], condition: Column | None = None, source: DataFrame | None = None, *, statement_params: Dict[str, str] | None = None, block: bool = False) snowflake.snowpark.AsyncJob
Updates rows in the Table with specified
assignments
and returns aUpdateResult
, representing the number of rows modified and the number of multi-joined rows modified.- Parameters:
assignments – A
dict
that associates the names of columns with the values that should be updated. The value ofassignments
can either be a literal value or aColumn
object.condition – An optional
Column
object representing the specified condition. It must be provided ifsource
is provided.source – An optional
DataFrame
that is included incondition
. It can also be anotherTable
.statement_params – Dictionary of statement level parameters to be set while executing this action.
block – A bool value indicating whether this function will wait until the result is available. When it is
False
, this function executes the underlying queries of the dataframe asynchronously and returns anAsyncJob
.
Examples:
>>> target_df = session.create_dataframe([(1, 1),(1, 2),(2, 1),(2, 2),(3, 1),(3, 2)], schema=["a", "b"]) >>> target_df.write.save_as_table("my_table", mode="overwrite", table_type="temporary") >>> t = session.table("my_table") >>> # update all rows in column "b" to 0 and all rows in column "a" >>> # to the summation of column "a" and column "b" >>> t.update({"b": 0, "a": t.a + t.b}) UpdateResult(rows_updated=6, multi_joined_rows_updated=0) >>> t.collect() [Row(A=2, B=0), Row(A=3, B=0), Row(A=3, B=0), Row(A=4, B=0), Row(A=4, B=0), Row(A=5, B=0)] >>> # update all rows in column "b" to 0 where column "a" has value 1 >>> target_df.write.save_as_table("my_table", mode="overwrite", table_type="temporary") >>> t.update({"b": 0}, t["a"] == 1) UpdateResult(rows_updated=2, multi_joined_rows_updated=0) >>> t.collect() [Row(A=1, B=0), Row(A=1, B=0), Row(A=2, B=1), Row(A=2, B=2), Row(A=3, B=1), Row(A=3, B=2)] >>> # update all rows in column "b" to 0 where column "a" in this >>> # table is equal to column "a" in another dataframe >>> target_df.write.save_as_table("my_table", mode="overwrite", table_type="temporary") >>> source_df = session.create_dataframe([1, 2, 3, 4], schema=["a"]) >>> t.update({"b": 0}, t["a"] == source_df.a, source_df) UpdateResult(rows_updated=6, multi_joined_rows_updated=0) >>> t.collect() [Row(A=1, B=0), Row(A=1, B=0), Row(A=2, B=0), Row(A=2, B=0), Row(A=3, B=0), Row(A=3, B=0)]