Search code examples
apache-sparkpysparksnowflake-cloud-data-platform

Snowpark table creation failing even query executed successfully


I am trying to create a table from other table in snowpark using parameterized value

CREATE OR REPLACE PROCEDURE table_merge(DB varchar,SCHEMA varchar,TARGET_TABLE varchar, SRC_TABLE varchar)
  RETURNS STRING
  LANGUAGE PYTHON
  RUNTIME_VERSION = '3.8'
  PACKAGES = ('snowflake-snowpark-python')
  HANDLER = 'table_merge'
AS
$$
from snowflake.snowpark.functions import when_matched

def table_merge(session,DB,SCHEMA,TARGET_TABLE, SRC_TABLE ):
  session.use_database(DB)
  session.use_schema(SCHEMA)
  session.sql(f"CREATE TABLE {DB}.{SCHEMA}.{TARGET_TABLE} LIKE {DB}.{SCHEMA}.{SRC_TABLE}")
  table_count = session.sql(f"SHOW TABLES LIKE {TARGET_TABLE}")
  return table_count.count()
$$; 

The table is not creating and the result return 0. i even didn't see the table when i ran query alone

Any solution to this?


Solution

  • Yea i got the answer finally for creating a permanent table using snowpark API without using session

    source_table_df.write.mode("overwrite").save_as_table("my_new_table")