Python 저장 프로시저로 파일 읽기¶
Python 핸들러는 Snowpark snowflake.snowpark.files
모듈의 SnowflakeFile
클래스를 사용하여 다음 Snowflake 스테이지 중 하나에서 파일을 동적으로 읽을 수 있습니다.
명명된 내부 스테이지.
지정된 테이블의 내부 스테이지.
현재 사용자의 내부 스테이지.
Snowflake는 저장 프로시저와 사용자 정의 함수 모두에 대해 SnowflakeFile
을 사용하여 파일 읽기를 지원합니다. 처리기 코드에서 파일 읽기에 대한 자세한 내용과 더 많은 예제는 Python UDF 처리기로 파일 읽기 를 참조하십시오.
예¶
이 예는 SnowflakeFile
클래스를 사용하여 파일을 읽는 소유자의 권한 저장 프로시저 를 만들고 호출하는 방법을 보여줍니다.
mode
인자에 대해 rb
를 전달하여 입력 모드를 바이너리로 지정하여 인라인 처리기로 저장 프로시저를 만듭니다.
CREATE OR REPLACE PROCEDURE calc_phash(file_path string)
RETURNS STRING
LANGUAGE PYTHON
RUNTIME_VERSION = '3.9'
PACKAGES = ('snowflake-snowpark-python','imagehash','pillow')
HANDLER = 'run'
AS
$$
from PIL import Image
import imagehash
from snowflake.snowpark.files import SnowflakeFile
def run(ignored_session, file_path):
with SnowflakeFile.open(file_path, 'rb') as f:
return imagehash.average_hash(Image.open(f))
$$;
저장 프로시저를 호출합니다.
CALL calc_phash(build_scoped_file_url(@my_files, 'my_image.jpg'));