2024년 Python용 Snowpark 라이브러리 릴리스 정보¶
이 문서에는 Snowpark Library for Python 에 대한 릴리스 정보가 있는데, 해당되는 경우 다음을 포함합니다.
동작 변경 사항
새로운 기능
고객이 직면한 버그 수정
Snowflake는 Snowpark Library for Python 업데이트에 의미 체계 버전 관리를 사용합니다.
버전 1.13.0(2024-02-26)¶
Snowpark 라이브러리 버전 1.13.0에는 몇 가지 새로운 기능이 도입되었습니다.
새로운 기능¶
함수
last_day
에 선택적date_part
인자에 대한 지원을 추가했습니다.세션이 생성된 후
SessionBuilder.app_name
이query_tag
를 설정합니다.다음 로컬 테스트 함수에 대한 지원을 추가했습니다.
current_timestamp
current_date
current_time
strip_null_value
upper
lower
length
initcap
개선 사항¶
모든 활성 세션을 닫는 인터프리터 종료 시 정리 논리를 추가했습니다.
버그 수정 사항¶
잘못된 격리 수준으로 인해 반복기가 완료되기 전에 다른 쿼리가 실행되면 반복기가 잘못된 결과를 산출할 수 있는
DataFrame.to_local_iterator
의 버그를 수정했습니다.로컬 테스트가 활성화된 계획을 실행하는 동안 오류 메시지에서 테이블 이름이 잘리는 버그를 수정했습니다.
범위가 클 때
Session.range
가 빈 결과를 반환하는 버그를 수정했습니다.
버전 1.12.1(2024-02-08)¶
Snowpark 라이브러리 버전 1.12.1에는 몇 가지 새로운 기능이 도입되었습니다.
개선 사항¶
최적의 메모리 할당을 위해
to_pandas
변환 중에 기본적으로split_blocks=True
를 사용합니다. 이 매개 변수는pyarrow.Table.to_pandas
에 전달되며, 이를 통해PyArrow
는 단일 연속 블록을 할당하는 대신 메모리 할당을 더 작고 관리하기 쉬운 블록으로 분할할 수 있습니다. 이로 인해 더 큰 데이터 세트를 처리할 때 메모리 관리가 향상됩니다.
버그 수정 사항¶
null 값이 있는
IntergerType
열이 있는 Dataframe을 평가할 때 오류를 발생시키는DataFrame.to_pandas
의 버그를 수정했습니다.
버전 1.12.0(2024-01-29)¶
Snowpark 라이브러리 버전 1.12.0에는 몇 가지 새로운 기능이 도입되었습니다.
동작 변경 사항(API 호환)¶
to_pandas
작업 중에 데이터 타입을 구문 분석할 때 GS 정밀도 값을 사용하여 큰 정수 값의 정밀도 문제를 수정합니다. 이는 이전에int8
로 반환된 열이int64
로 반환되는 경우 사용자에게 영향을 미칠 수 있습니다. 사용자는 반환 열에 정밀도 값을 명시적으로 지정하여 이 문제를 수정할 수 있습니다.collect()
작업이 수행되지 않으면Session.call
실행이 저장 프로시저를 트리거하지 않는 테이블 저장 프로시저의 경우Session.call
에 대한 동작을 조정했습니다.StoredProcedureRegistration
은 이제 클라이언트의 로컬 버전 라이브러리에 대한 패키지 종속성으로snowflake-snowpark-python
을 자동으로 추가합니다. 서버가 해당 버전을 지원할 수 없으면 오류가 발생합니다.
새로운 기능¶
StoredProcedure.__call__
에statement_params
를 노출했습니다.Session.add_import
에 두 개의 선택적 인자를 추가했습니다.chunk_size
: 업로드된 파일의 청크마다 해시할 바이트 수입니다.whole_file_hash
: 기본적으로 업로드된 가져오기의 첫 번째 청크만 해시되므로 시간이 절약됩니다. 이것을 True로 설정하면 업로드된 각 파일이 대신 완전히 해시됩니다.
외부 액세스와의 통합을 허용하기 위해 Snowpark Python에서 UDAF를 생성할 때 매개 변수
external_access_integrations
및secrets
를 추가했습니다.추가 태그를 쉼표로 구분된 값으로 추가하여 현재 쿼리 태그에 추가할 수 있는 새로운 메서드
Session.append_query_tag
를 추가했습니다.JSON으로 인코딩된 사전 쿼리 태그를 업데이트할 수 있는 새 메서드
Session.update_query_tag
를 추가했습니다.SessionBuilder.getOrCreate
는 이제 토큰 만료가 감지되면 반환하는 싱글톤을 바꾸려고 시도합니다.snowflake.snowpark.functions
에 다음 함수를 추가했습니다.array_except
create_map
sign
/signum
DataFrame.analytics
에 다음 함수를 추가했습니다.여러 윈도우 크기로 합계 및 평균과 같은 이동 집계를 활성화하기 위해
DataFrame.analytics
에moving_agg
함수를 추가했습니다.여러 윈도우 크기로 합계 및 평균과 같은 이동 집계를 활성화하기 위해
DataFrame.analytics
에cummulative_agg
함수를 추가했습니다.
버그 수정 사항¶
부울 값이 정수 값을 잘못 재정의하게 만드는
DataFrame.na.fill
의 버그를 수정했습니다.pandas DataFrames를 사용하여 생성된 Snowpark DataFrames가 타임스탬프 열의 유형을 올바르게 추론하지 못하는
Session.create_dataframe
의 버그를 수정했습니다. 이 동작은 다음과 같습니다.타임존이 없는 이전 타임스탬프 열은 나노초 에포크로 변환되어
LongType()
으로 추론되지만, 이제는 타임스탬프 값으로 올바르게 유지되고TimestampType(TimestampTimeZone.NTZ)
로 추론됩니다.타임존이 있는 이전 타임스탬프 열은
TimestampType(TimestampTimeZone.NTZ)
및 느슨한 타임존 정보로 추론되지만 이제는TimestampType(TimestampTimeZone.LTZ)
로 올바르게 추론되고 타임존 정보가 올바르게 유지됩니다.이전 동작으로 되돌리려면 세션 매개 변수
PYTHON_SNOWPARK_USE_LOGICAL_TYPE_FOR_CREATE_DATAFRAME
을 설정하십시오. Snowflake에서는 매개 변수가 나중에 제거될 예정이므로 올바른 동작에 맞게 코드를 업데이트할 것을 권장합니다.
스케일이 0이 아닐 때
DataFrame.to_pandas
가 십진수 유형을 가져오고pandas
에 오브젝트 dtype을 생성하는 버그를 수정했습니다. 대신에 값을 float64 유형으로 형변환합니다.다음 중 하나가 발생할 때 생성된 SQL을 잘못 평면화하는 버그를 수정했습니다.
DataFrame.filter()
는DataFrame.sort().limit()
이후에 호출됩니다.이미 윈도우 함수나 시퀀스 종속 데이터 생성기 열이 있는 DataFrame에서
DataFrame.sort()
또는filter()
가 호출됩니다. 예를 들어,df.select("a", seq1().alias("b")).select("a", "b").sort("a")
는 더 이상 sort 절을 평면화하지 않습니다.윈도우 또는 시퀀스 종속 데이터 생성기 열은
DataFrame.limit()
뒤에 사용됩니다. 예를 들어,df.limit(10).select(row_number().over())
는 생성된 SQL에서 limit와 select를 평탄화하지 않습니다.
별칭이 지정된 열이 있는 다른 DataFrame에서 DataFame을 복사할 때 DataFrame 열의 별칭을 지정하면 오류가 발생하는 버그를 수정했습니다. 예를 들면 다음과 같습니다.
df = df.select(col("a").alias("b")) df = copy(df) df.select(col("b").alias("c")) # Threw an error. Now it's fixed.
부울 유형에 대해 스키마에서 null을 허용하지 않는 필드를 준수하지 않는
Session.create_dataframe
의 버그를 수정했습니다. 이 수정 사항은 사용자에게 임시 테이블을 생성할 권한이 있는 경우에만 적용됩니다.session.sql
에서 select 문이 아닌 문이limit()
와 함께 사용될 때 SQL 쿼리를 삭제하는 SQL 단순화 기능의 버그를 수정했습니다.세션 매개 변수
ERROR_ON_NONDETERMINISTIC_UPDATE
가 true인 경우 예외를 발생시키는 버그를 수정했습니다.