Snowpark Connect for Spark 로 Snowflake SQL 실행하기¶
Snowflake와 관련된 SQL 명령을 실행하려면 SnowflakeSession 인터페이스를 사용하면 됩니다. spark.sql 메서드와 마찬가지로, 쿼리 결과는 Spark DataFrames로 반환되며, 결과 데이터에 Spark DataFrame 변환 및 작업을 계속 적용하거나 연결할 수 있습니다.
대부분의 SQL 작업을 수행할 때 spark.sql 메서드를 사용하여 SQL 문을 직접 실행하고 해당 결과를 Spark DataFrames로 검색할 수 있습니다. 그러나 Snowflake SQL 구문의 일부 부분(QUALIFY, CONNECT, BY, LATERAL, FLATTEN 및 time travel 쿼리 포함)은 Spark SQL과 호환되지 않습니다.
다음 예제에서는 :code:`SnowflakeSession`을 사용하여 CONNECT BY 절을 포함하는 Snowflake SQL 명령을 실행하는 방법을 보여줍니다.
import snowflake.snowpark_connect
from snowflake.snowpark_connect.snowflake_session import SnowflakeSession
spark = snowflake.snowpark_connect.server.init_spark_session()
snowflake_session = SnowflakeSession(spark)
result_df = snowflake_session.sql("""
SELECT
employee_name,
manager_name,
LEVEL
FROM employees
START WITH employee_name = 'Alice'
CONNECT BY PRIOR manager_name = employee_name
""").show()
result_df.limit(1).show()
SnowflakeSession 인터페이스를 사용하여 Snowflake와 관련된 구성 지시문을 실행할 수도 있습니다. 이러한 지시문에는 활성 데이터베이스, 스키마 또는 웨어하우스와 같은 세션 수준 매개 변수 설정이 포함됩니다.
다음 예제에서는 :code:`SnowflakeSession`을 사용하여 세션 수준 매개 변수를 설정하는 방법을 보여줍니다.
import snowflake.snowpark_connect
from snowflake.snowpark_connect.client import SnowflakeSession
spark = snowflake.snowpark_connect.server.init_spark_session()
snowflake_session = SnowflakeSession(spark)
snowflake_session.use_database("MY_DATABASE")
snowflake_session.use_schema("MY_SCHEMA")
snowflake_session.use_warehouse("MY_WH")
snowflake_session.use_role("PUBLIC")