Как при написании кода Snowpark на листе Snowsight Python можно выбрать конкретную схему? Я знаю, что могу выбрать его вручную с помощью пользовательского интерфейса, но я хочу выбрать его программно.
import snowflake.snowpark as snowpark
from snowflake.snowpark.functions import col
def main(session: snowpark.Session):
df_sql = session.sql("SELECT CURRENT_ACCOUNT(), CURRENT_USER(), CURRENT_ROLE(), CURRENT_WAREHOUSE(), CURRENT_DATABASE(), CURRENT_SCHEMA()")
return df_sql
Я писал код Snowpark на листе Snowsight Python. Хотя я знаю, что могу вручную выбрать конкретную схему с помощью пользовательского интерфейса, я хочу сделать это программно в своем коде. Я просмотрел документацию Snowpark, но не смог найти четкого примера или метода программной настройки схемы. Я ожидал найти способ установить схему непосредственно в моем коде Snowpark, аналогично тому, как это можно сделать в SQL с помощью оператора USE SCHEMA.
============ Обновление-1 ============
Я протестировал приведенный ниже код, но он не удался из-за ошибки GENERAL_INVALID_OBJECT_NAME для схемы «MY_SCHEMA», но это действительная схема в текущей активной базе данных.
import snowflake.snowpark as snowpark
from snowflake.snowpark.functions import col
def main(session: snowpark.Session):
session.use_schema('MY_SCHEMA')
df_sql = session.sql("SELECT CURRENT_ACCOUNT(), CURRENT_USER(), CURRENT_ROLE(), CURRENT_WAREHOUSE(), CURRENT_DATABASE(), CURRENT_SCHEMA()")
return df_sql
Спасибо, я протестировал приведенный ниже код, но он не работает из-за ошибки GENERAL_INVALID_OBJECT_NAME для схемы «MY_SCHEMA», но это действительная схема в текущей активной базе данных. Код: python import snowflake.snowpark as snowpark from snowflake.snowpark.functions import col def main(session: snowpark.Session): session.use_schema('MY_SCHEMA') df_sql = session.sql("SELECT CURRENT_ACCOUNT(), CURRENT_USER(), CURRENT_ROLE(), CURRENT_WAREHOUSE(), CURRENT_DATABASE(), CURRENT_SCHEMA()") return df_sql
Пожалуйста, обновите свой вопрос, добавив любую дополнительную информацию, а не добавляйте ее в комментарии, чтобы вся информация была в одном месте и ее можно было отформатировать так, чтобы ее можно было прочитать.
Спасибо, готово. Пожалуйста, проверьте сейчас.
Пара мыслей... 1) вам также нужно установить базу данных или полностью указать имя схемы, например. session.use_schema('DTABASE_NAME.MY_SCHEMA') ? 2) Имеет ли пользователь, выполняющий этот сценарий, права доступа к базе данных и схеме?





Session.use_schema должен позволять вам обновлять текущую схему, как показано ниже:
>>> session = Session.builder.configs(connection_parameters).create()
>>> session.use_schema('FINANCE')
>>> session.sql("SELECT CURRENT_SCHEMA()")
<snowflake.snowpark.dataframe.DataFrame object at 0x00000286F5726890>
>>> session.sql("SELECT CURRENT_SCHEMA()").show()
Есть ли в имени схемы специальные символы?
Как насчет использования Snowflake.snowpark.Session.use_schema?