Python UDF 문제 해결

이 항목에서는 Python UDF(사용자 정의 함수)에 대한 문제 해결 정보를 제공합니다.

이 항목의 내용:

문제 해결

문제: Anaconda를 통해 필요한 Python 라이브러리를 사용할 수 없음

C/C++ 확장이 없는 서드 파티 Python 라이브러리는 Snowflake 스테이지를 통해 UDF에서 직접 가져올 수 있습니다. 자세한 내용은 스테이지에서 업로드된 코드로 Python UDF 만들기 섹션을 참조하십시오.

추가 Anaconda 패키지 지원 요청의 제출 방법을 알아보려면 서드 파티 패키지 사용하기 섹션을 참조하십시오.

문제: “Function available memory exhausted” 오류와 함께 UDF가 실패합니다.

UDF가 사용하는 메모리양을 줄입니다.

UDF 코드에 버그나 메모리 누수가 있는지 확인합니다.

자세한 내용은 메모리 를 참조하십시오.

문제: ZIP 또는 UDF 내부의 다른 아카이브를 추출하고 싶습니다.

ZIP 파일을 Snowflake 스테이지에 업로드한 다음 UDF 내부의 /tmp 디렉터리에 압축을 푸는 방법의 예를 보려면 스테이징된 파일의 압축 풀기 섹션을 참조하십시오.

문제: UDF 성능 저하

UDF의 성능 향상 방법에 대한 자세한 내용은 규모와 성능 최적화하기 섹션을 참조하십시오.

문제: ORGADMIN 역할이 활성화되지 않아 Anaconda 패키지를 사용할 수 없습니다.

Anaconda에서 서드 파티 패키지를 사용하기 시작하는 단계를 진행할 때는 조직 관리자(ORGADMIN) 역할이 필요합니다.

이 문제를 해결하려면 계정에서 ORGADMIN 역할 활성화하기 의 지침을 따르십시오.

문제: 파일을 읽을 때 “UnicodeDecodeError” 오류와 함께 UDF가 실패합니다.

SnowflakeFile 클래스를 사용하여 텍스트가 아닌 데이터가 포함된 파일을 읽을 때 입력 모드를 바이너리로 지정해야 합니다. 그렇지 않으면 다음 오류가 발생할 수 있습니다.

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xf7 in position 12: invalid start byte
Copy

이 문제를 해결하려면 mode 인자(두 번째 인자)에 대해 'rb' 를 전달하여 입력 모드를 바이너리로 지정하십시오. 예:

with SnowflakeFile.open(file_name, 'rb') as f:
Copy

머신 러닝(Z) 모델 학습은 때로는 리소스를 매우 많이 사용할 수 있습니다. Snowpark에 최적화된 웨어하우스는 대량의 메모리와 컴퓨팅 리소스가 필요한 워크로드에 사용할 수 있는 일종의 Snowflake 가상 웨어하우스입니다. 머신 러닝 모델과 Snowpark Python에 대한 자세한 내용은 Snowpark Python으로 머신 러닝 모델 학습시키기 섹션을 참조하십시오.

마스킹 정책 에서 Python UDF를 사용하는 경우 열의 데이터 타입, UDF, 마스킹 정책이 일치하는지 확인하십시오.

서드 파티 패키지에 대한 문제 해결 정보는 서드 파티 패키지의 알려진 문제 섹션을 참조하십시오.