2024년 Python용 Snowpark 라이브러리 릴리스 정보¶
이 문서에는 Snowpark Library for Python 에 대한 릴리스 정보가 있는데, 해당되는 경우 다음을 포함합니다.
동작 변경 사항
새로운 기능
고객이 직면한 버그 수정
Snowflake는 Snowpark Library for Python 업데이트에 의미 체계 버전 관리를 사용합니다.
설명서는 Python용 Snowpark 개발자 가이드 섹션을 참조하십시오.
경고
Python 3.8이 EoL(End of Life) 에 도달함에 따라, Python 3.8에서 snowpark-python을 사용할 때 지원 중단 경고가 트리거됩니다. 자세한 내용은 Snowflake Python 런타임 지원 섹션을 참조하십시오. Snowpark 1.24.0은 Anaconda의 정책 에 따라 Python 3.8을 지원하는 마지막 클라이언트 및 서버 버전이 될 것입니다. 기존 Python 3.8 오브젝트를 Python 3.9 이상으로 업그레이드하십시오.
버전 1.26.0(2024-12-05)¶
새로운 기능¶
Session클래스에 대한 속성version및 클래스 메서드get_active_session지원을 추가했습니다.데이터 타입 처리와 JSON 직렬화/역직렬화를 개선하기 위해 다음에 새로운 메서드와 변수를 추가했습니다.
DataType, 파생 클래스,StructField:type_name: 데이터의 타입 이름을 반환합니다.simple_string: 데이터의 간단한 문자열 표현을 제공합니다.json_value: 데이터를 JSON 호환 가능한 값으로 반환합니다.json: 데이터를 JSON 문자열로 변환합니다.
ArrayType,MapType,StructField,PandasSeriesType,PandasDataFrameType,StructType:from_json: JSON 데이터에서 이러한 유형을 생성할 수 있도록 합니다.
MapType:keyType: 맵의 키valueType: 맵의 값
SessionBuilder에서 메서드appName에 대한 지원을 추가했습니다.DataFrame.unpivot에서include_nulls인자에 대한 지원을 추가했습니다.functions.py에서 다음 함수에 대한 지원을 추가했습니다.size를 사용하여 배열, 오브젝트 또는 맵 열의 크기를 가져옵니다.array_agg의 별칭collect_list.문자열을 구분 기호로 연결하고 null 값을 무시하는
concat_ws_ignore_nulls.substring은len인자를 선택 사항으로 만듭니다.
내부 사용을 위해 세션에
ast_enabled매개 변수를 추가했습니다(기본값:False).
개선 사항¶
DataFrame.create_or_replace_dynamic_table에 다음을 지정하기 위한 지원을 추가했습니다.iceberg_config다음의 Iceberg 구성 옵션을 포함할 수 있는 사전:external_volumecatalogbase_locationcatalog_syncstorage_serialization_policy
DataFrame.print_schema에 중첩된 데이터 타입에 대한 지원을 추가했습니다.level매개 변수에 대한 지원을DataFrame.print_schema에 추가했습니다.다음에 대한 지원을 추가하여
DataFrameReader및DataFrameWriterAPI 의 유연성을 개선했습니다.결과 로딩 또는 언로딩 시 파일 형식을 지정하기 위해
DataFrameReader및DataFrameWriter에format메서드를 추가했습니다.format과 함께 작동하도록DataFrameReader에load메서드를 추가했습니다.format과 함께 작동하도록DataFrameWriter에save메서드를 추가했습니다.DataFrameReader및DataFrameWriter에 대한options메서드에 키워드 인자 읽기 지원을 추가했습니다.
Python 3.11의 cloudpickle 종속성을 완화하여 빌드 요구 사항을 간소화했습니다. 그러나 Python 3.11의 경우
cloudpickle==2.2.1이 유일한 지원 버전입니다.
버그 수정 사항¶
이제 동적 피벗 기능이 일반 공급되므로 동적 피벗 기능이 비공개 미리 보기에 있다는 경고를 제거했습니다.
생성된 파일 형식에서
False부울 값이True로 잘못 구문 분석되는session.read.options에서 버그를 수정했습니다.
종속성 업데이트¶
python-dateutil에 런타임 종속성을 추가했습니다.
Snowpark pandas API 업데이트¶
새로운 기능¶
arg가 pandasSeries또는collections.abc.Mapping인 경우Series.map에 대한 부분적 지원을 추가했습니다.__missing__을 구현하지만collections.defaultdict의 인스턴스가 아닌dict의 인스턴스는 지원되지 않습니다.axis=1및axis=None에 대한DataFrame.align및Series.align지원을 추가했습니다.pd.json_normalize를 지원하는 기능이 추가되었습니다.axis=0,freq=None,limit=None을 사용하여GroupBy.pct_change에 대한 지원을 추가했습니다.DataFrameGroupBy.__iter__및SeriesGroupBy.__iter__에 대한 지원이 추가되었습니다.np.sqrt,np.trunc,np.floor, numpy trig 함수,np.exp,np.abs,np.positive,np.negative에 대한 지원을 추가했습니다.데이터 프레임 교환 프로토콜 메서드
DataFrame.__dataframe__()에 대한 부분적 지원을 추가했습니다.
버그 수정 사항¶
시리즈에서 단일 열을 설정하면 예기치 않은
None값이 생성되는df.loc의 버그를 수정했습니다.
개선 사항¶
pandas에서 피벗 해제 작업에 센티넬 값 대신 UNPIVOT INCLUDE NULLS 를 사용합니다.
pd.read_excel에 대한 설명서를 개선했습니다.
버전 1.25.0(2024-11-13)¶
새로운 기능¶
snowflake.snowpark.dataframe에 다음과 같은 새로운 함수를 추가했습니다.map
개선 사항¶
프로파일러에서 대상 스테이지가 설정되어 있지 않으면
SnowparkSQLException을 올리는 대신Session.get_session_stage의 기본 스테이지가 사용됩니다.Session.stored_procedure_profiler.set_active_profiler호출 시 소문자 또는 혼합 대/소문자 입력을 허용했습니다.DataFrame의 작업 함수에 open telemetry API를 사용한 분산 추적을 추가했습니다.cache_result
로깅에서 opentelemetry 경고를 제거했습니다.
버그 수정 사항¶
select에
In식을 사용할 때 작업 전 및 작업 후 쿼리 전파를 수정했습니다.Session.stored_procedure_profiler가 비활성화되어 있을 때Session.stored_procedure_profiler.get_output을 호출하는 동안 오류AttributeError가 발생하는 버그를 수정했습니다.
종속성 업데이트¶
런타임에
protobuf>=5.28및tzlocal에 종속성을 추가했습니다.개발 프로필의
protoc-wheel-0에 대한 종속성을 추가했습니다.snowflake-connector-python>=3.12.0, <4.0.0이 필요합니다(이전에는>=3.10.0).
Snowpark pandas API 업데이트¶
새로운 기능¶
Index.to_numpy를 지원하는 기능이 추가되었습니다.axis=0을 위해DataFrame.align및Series.align에 대한 지원을 추가했습니다.snowflake.snowpark.functions.window에 대한 지원을 추가했습니다.pd.read_pickle에 대한 지원을 추가했습니다(처리를 위해 네이티브 pandas 사용).pd.read_html에 대한 지원을 추가했습니다(처리를 위해 네이티브 pandas 사용).pd.read_xml에 대한 지원을 추가했습니다(처리를 위해 네이티브 pandas 사용).GroupBy.aggregate,DataFrame.aggregate,Series.aggregate에서 집계 함수"size"및len에 대한 지원을 추가했습니다.Series.str.len에서 목록 값에 대한 지원을 추가했습니다.
버그 수정 사항¶
단일 열 데이터프레임을 단일 호출 가능 함수(예:
pd.DataFrame([0]).agg(np.mean))로 집계하면 결과가 바뀌지 않던 버그를 수정했습니다.DataFrame.dropna()의 버그를 수정했습니다.빈
subset(예:[])를 열이 없는 대신 모든 열을 지정한 것처럼 취급합니다.해당 열만 필터링하는 대신 스칼라
subset에 대한TypeError를 발생시킵니다.인덱스의 열을 필터링하는 대신 유형
pandas.Index의subset에 대해ValueError를 발생시킵니다.
노트북 환경에서 동적 피벗을 사용할 때
TableNotFoundError를 완화하기 위해 범위가 지정된 읽기 전용 테이블을 만듭니다.axis = 1일 때 동일한 데이터프레임에서 데이터프레임 또는 시리즈 오브젝트를 연결할 때 발생하는 버그를 수정했습니다.
개선 사항¶
불필요한 조인 및 임시 테이블 생성을 제거하여 스칼라 x 값으로
np.where를 개선합니다.조인으로 피벗을 평면화하여
get_dummies성능을 개선합니다.
Snowpark 로컬 테스트 업데이트¶
새로운 기능¶
snowflake.snowpark.functions모듈에서 사용할 수 없는 함수를 패치하기 위한 지원을 추가했습니다.snowflake.snowpark.functions.any_value에 대한 지원을 추가했습니다.
버그 수정 사항¶
Table.update에서VariantType,MapType및ArrayType데이터 타입을 처리할 수 없는 버그를 수정했습니다.DataFrame.join에서 열 별칭이 잘못 확인되어 조인된 DataFrame 에서 열을 선택할 때 오류가 발생하는 버그를 수정했습니다.대상 테이블의 인덱스가 기본값
RangeIndex가 아닌 경우Table.update및Table.merge가 실패할 수 있는 버그를 수정했습니다.
버전 1.24.0 (2024-10-28)¶
새로운 기능¶
Session클래스를 스레드에 안전하도록 업데이트했습니다. 이를 통해 동일한Session오브젝트를 사용할 때 동시 DataFrame 변환, DataFrame 작업, UDF 및 저장 프로시저 등록, 동시 파일 업로드가 가능합니다.이 기능은 기본적으로 비활성화되어 있으며 계정에 대해
FEATURE_THREAD_SAFE_PYTHON_SESSION을True로 설정하여 활성화할 수 있습니다.여러 스레드가 세션을 사용할 때 데이터베이스 또는 스키마 변경과 같은 세션 구성을 업데이트하면 예기치 않은 동작이 발생할 수 있습니다.
활성화하면
DataFrame.queriesAPI 에서 반환되는 내부적으로 생성된 일부 임시 테이블 이름은 결정론적이지 않으며 DataFrame 작업이 실행될 때 달라질 수 있습니다. 이는 사용자가 만든 명시적 임시 테이블에는 영향을 미치지 않습니다.
session.lineage.traceAPI 에 ‘Service’ 도메인에 대한 지원을 추가했습니다.데이지 체인 지원을 위해
DataFrameWriter에서 다음 메서드에 대한 지원을 추가했습니다.optionoptionspartition_by
snowflake_cortex_summarize를 지원하는 기능이 추가되었습니다.
개선 사항¶
함수
snowflake.snowpark.functions.array_remove에 다음과 같은 새로운 기능을 추가하여 이제 Python에서 사용할 수 있도록 개선했습니다.제한 후 정렬이 수행될 때 SQL 단순화를 비활성화합니다.
이전에는
df.sort().limit()및df.limit().sort()에서 제한 앞에 sort를 붙여 동일한 쿼리를 생성했습니다. 이제df.limit().sort()는df.limit().sort()라는 쿼리를 생성합니다.레코드 수가 충족되는 즉시 테이블 스캔이 중지되므로
df.limit().sort()에 대해 생성된 쿼리의 성능이 향상됩니다.
버그 수정 사항¶
임시 테이블의 자동 정리가 비동기 쿼리 실행 결과를 방해할 수 있는 버그를 수정했습니다.
동일한 슬라이딩 간격에서 여러 데이터 요소를 처리하는
DataFrame.analytics.time_series_agg함수의 버그를 수정했습니다.Iceberg 스키마에서 정형 오브젝트의 필드 이름에 일관되지 않은 대/소문자가 생성되던 버그를 수정했습니다.
사용 중단¶
Python 3.8이 EoL(End of Life) 에 도달함에 따라, Python 3.8에서 snowpark-python을 사용할 때 지원 중단 경고가 트리거됩니다. 자세한 내용은 Snowflake Python 런타임 지원 섹션을 참조하십시오.
Snowpark 1.24.0은 Anaconda의 정책 에 따라 Python 3.8을 지원하는 마지막 클라이언트 및 서버 버전입니다. 기존 Python 3.8 오브젝트를 Python 3.9 이상으로 업그레이드하십시오.
Snowpark pandas API 업데이트¶
새로운 기능¶
np.subtract,np.multiply,np.divide,np.true_divide에 대한 지원을 추가했습니다.__array_ufunc__의 사용량 추적을 위한 지원을 추가했습니다.np.float_power,np.mod,np.remainder,np.greater,np.greater_equal,np.less,np.less_equal,np.not_equal,np.equal에 대한 numpy 호환성 지원을 추가했습니다.np.log,np.log2,np.log10에 대한 numpy 호환성 지원을 추가했습니다.DataFrameGroupBy.bfill,SeriesGroupBy.bfill,DataFrameGroupBy.ffill,SeriesGroupBy.ffill에 대한 지원을 추가했습니다.Resampler에서on매개 변수에 대한 지원을 추가했습니다.value_counts()에서 timedelta 입력에 대한 지원을 추가했습니다.Snowpark Python 함수
snowflake_cortex_summarize적용 지원을 추가했습니다.DataFrame.attrs및Series.attrs에 대한 지원이 추가되었습니다.DataFrame.style를 지원하는 기능이 추가되었습니다.np.full_like에 대한 numpy 호환성 지원을 추가했습니다.
개선 사항¶
행 키가 슬라이스인 경우
head및iloc에 대해 생성된 SQL 쿼리를 개선했습니다.Series,DataFrame,Series.dt,DatetimeIndex에서 알 수 없는 타임존을tz_convert및tz_localize로 전달할 때 오류 메시지를 개선했습니다.지원되는 타임존 형식을 지정하기 위해
Series,DataFrame,Series.dt,DatetimeIndex에서tz_convert및tz_localize에 대한 설명서를 개선했습니다.Snowpark 함수 사용 시
df.apply및series.apply(map및applymap)에 대한 kwargs 지원을 추가했습니다. 이렇게 하면 적용과 첫 번째 인자가 pandas 오브젝트가 아닌 함수 간에 위치 독립적인 호환성이 가능합니다.행 키가 스칼라인 경우
iloc및iat에 대해 생성된 SQL 쿼리를 개선했습니다.iterrows에서 모든 조인을 제거했습니다.지원되지 않는 기능을 반영하여
Series.map에 대한 설명서를 개선했습니다.많은 scikit-learn 함수에서 내부적으로 사용하는
np.may_share_memory에 대한 지원을 추가했습니다. 이 메서드는 Snowpark pandas 오브젝트로 호출하면 항상 false를 반환합니다.
버그 수정 사항¶
입력에 timedelta 열이 포함될 때
DataFrame및Seriespct_change()가TypeError를 발생시키는 버그를 수정했습니다.replace()가 가끔replace()를 통해Timedelta유형을 잘못 전파하는 버그를 수정했습니다. 대신Timedelta에서replace()에 대한NotImplementedError를 발생시킵니다.DataFrame및Seriesround()가Timedelta열에 대해AssertionError를 발생시키는 버그를 수정했습니다. 대신Timedelta에서round()에 대한NotImplementedError를 발생시킵니다.새 인덱스가 원래 인덱스와 유형이 겹치지 않는 Series인 경우
reindex가 실패하는 버그를 수정했습니다.DataFrameGroupBy 오브젝트에서
__getitem__을 호출하면as_index=False인 경우 항상 DataFrameGroupBy 오브젝트를 반환하는 버그를 수정했습니다.timedelta 값을 기존 열에 삽입하면 값이
NotImplementedError를 발생시키는 대신 정수로 자동 변환되는 버그를 수정했습니다.axis=0 및 axis=1에서
DataFrame.shift()가 timedelta 유형을 전파하지 못하는 버그를 수정했습니다.DataFrame.abs(),DataFrame.__neg__(),DataFrame.stack(),DataFrame.unstack()는 이제 timedelta 유형 전파에 실패하는 대신 timedelta 입력에 대해NotImplementedError를 발생시킵니다.
Snowpark 로컬 테스트 업데이트¶
버그 수정 사항¶
DataFrame.alias가 입력 열 이름에 대해KeyError를 발생시키는 버그를 수정했습니다.데이터에 빈 문자열이 포함되어 있을 때 Snowflake 스테이지의
to_csv가 실패하는 버그를 수정했습니다.
버전 1.23.0(2024-10-09)¶
새로운 기능¶
snowflake.snowpark.functions에 다음과 같은 새로운 함수를 추가했습니다.make_interval
열별 정렬이 TIMESTAMP 또는 DATE 유형인 경우 Snowflake Interval 상수를
Window.range_between()과 함께 사용하기 위한 지원을 추가했습니다.파일 쓰기에 대한 지원을 추가했습니다. 이 기능은 현재 비공개 미리 보기로 제공됩니다.
쿼리 기록을 제출하는 스레드 ID를 추적하기 위해
QueryRecord에thread_id를 추가했습니다.Session.stored_procedure_profiler를 지원하는 기능이 추가되었습니다.
버그 수정 사항¶
저장 프로시저나 UDxF를 타입 힌트와 함께 등록하면 함수에서 기본값을 읽으려고 할 때
NoneType에len()이 없다는 경고가 발생하는 버그를 수정했습니다.
Snowpark pandas API 업데이트¶
새로운 기능¶
TimedeltaIndex.mean메서드에 대한 지원을 추가했습니다.axis=0의Timedelta열을agg또는aggregate로 집계하는 일부 사례에 대한 지원을 추가했습니다.pd.merge_asof를 위해by,left_by,right_by,left_index,right_index에 대한 지원을 추가했습니다.매개 변수
include_describe를Session.query_history로 전달하기 위한 지원을 추가했습니다.DatetimeIndex.mean및DatetimeIndex.std메서드에 대한 지원을 추가했습니다.Resampler.asfreq,Resampler.indices,Resampler.nunique,Resampler.quantile에 대한 지원을 추가했습니다.closed = "left"인resample빈도W,ME,YE에 대한 지원을 추가했습니다.pairwise = False및 intwindow의DataFrame.rolling.corr및Series.rolling.corr에 대한 지원을 추가했습니다.Rolling에 대해 문자열 시간 기반window및min_periods = None에 대한 지원을 추가했습니다.DataFrameGroupBy.fillna및SeriesGroupBy.fillna에 대한 지원이 추가되었습니다.data,index,columns인자로 지연Index오브젝트를 사용하여Series및DataFrame오브젝트를 생성하기 위한 지원을 추가했습니다.DataFrame/Seriesdata에 없는index및column값으로Series및DataFrame오브젝트를 생성하기 위한 지원을 추가했습니다.pd.read_sas에 대한 지원을 추가했습니다(처리를 위해 네이티브 pandas 사용).Timedelta시리즈와 열에rolling().count()및expanding().count()를 적용하기 위한 지원을 추가했습니다.pd.date_range와pd.bdate_range에서 모두tz에 대한 지원을 추가했습니다.Series.items를 지원하는 기능이 추가되었습니다.pd.to_datetime에서errors="ignore"에 대한 지원을 추가했습니다.DataFrame.tz_localize및Series.tz_localize에 대한 지원이 추가되었습니다.DataFrame.tz_convert및Series.tz_convert에 대한 지원이 추가되었습니다.Series.map,Series.apply,DataFrame.apply,DataFrame.applymap에서 Snowpark Python 함수(예:sin)를 적용하기 위한 지원을 추가했습니다.
개선 사항¶
TIMESTAMP_TZ 타입에 대한 원래 타임존 오프셋을 유지하기 위해
to_pandas를 개선했습니다.올바른 타임존 오프셋을 표시하도록 TIMESTAMP_TZ 타입에 대한
dtype결과를 개선했습니다.올바른 타임존을 표시하도록 TIMESTAMP_LTZ 타입에 대한
dtype결과를 개선했습니다.그룹별 집계의 경우
numeric_only에 부울이 아닌 값을 전달할 때 발생하는 오류 메시지를 개선했습니다.sort_values의 정렬 알고리즘에 대한 불필요한 경고를 제거했습니다.내부적으로 임시 테이블을 생성하려면 SCOPED 오브젝트를 사용합니다. SCOPED 오브젝트는 sproc 내에 생성된 경우 sproc 범위로 지정되고, 그렇지 않은 경우 세션 범위로 저장되며, 오브젝트는 범위가 끝날 때 자동으로 정리됩니다.
의도치 않은 속도 저하로 인해 구체화되는 작업에 대한 경고 메시지를 개선했습니다.
Series.apply의convert_dtype에 대한 불필요한 경고 메시지를 제거했습니다.
버그 수정 사항¶
원래
Series/DataFrame에 준비된 업데이트가 적용된 후Series/DataFrame에서 생성된Index오브젝트가Series/DataFrame의 인덱스 이름을 잘못 업데이트하는 버그를 수정했습니다.Timedelta열을 인쇄할 때 가끔 나타나는 무익한SettingWithCopyWarning을 억제했습니다.다른
Series오브젝트에서 파생된Series오브젝트의inplace인자를 수정했습니다.시리즈 이름이 인덱스 열 이름과 겹치는 경우
Series.sort_values가 실패하는 버그를 수정했습니다.데이터프레임을 바꾸면
Timedelta인덱스 수준이 정수 열 수준에 매핑되는 버그를 수정했습니다.timedelta 열의
Resampler메서드가 정수 결과를 생성하는 버그를 수정했습니다.pd.to_numeric()이Timedelta입력값을 정수로 변환하지 않고Timedelta로 그대로 두는 버그를 수정했습니다.Series 값으로 DataFrame의 단일 행 또는 다중 행을 설정할 때 설정된
loc를 수정했습니다.
버전 1.22.1(2024-09-11)¶
이는 1.22.0의 재출시 버전입니다. 자세한 릴리스 내용은 1.22.0 릴리스 정보를 참조하십시오.
버전 1.22.0(2024-09-10)¶
새로운 기능¶
snowflake.snowpark.functions에 다음과 같은 새로운 함수를 추가했습니다.array_removeln
개선 사항¶
use_logical_type옵션을 더 명확하게 하여Session.write_pandas에 대한 설명서를 개선했습니다.DataFrameWriter.save_as_table에 다음을 지정하기 위한 지원을 추가했습니다.enable_schema_evolutiondata_retention_timemax_data_extension_timechange_trackingcopy_grantsiceberg_config- 다음의 Iceberg 구성 옵션을 포함할 수 있는 사전:external_volumecatalogbase_locationcatalog_syncstorage_serialization_policy
DataFrameWriter.copy_into_table에 다음을 지정하기 위한 지원을 추가했습니다.iceberg_config- 다음의 Iceberg 구성 옵션을 포함할 수 있는 사전:external_volumecatalogbase_locationcatalog_syncstorage_serialization_policy
DataFrame.create_or_replace_dynamic_table에 다음 매개 변수를 지정하기 위한 지원을 추가했습니다.moderefresh_modeinitializeclustering_keysis_transientdata_retention_timemax_data_extension_time
버그 수정 사항¶
PARSE_HEADER = True를 외부에서 정의된 파일 형식으로 설정할 때session.read.csv에서 오류가 발생하는 버그를 수정했습니다.하위 항목에 공통된 하위 쿼리가 있는 경우 중복된 쿼리를 생성할 수 있는 세트 연산에서 쿼리 생성의 버그를 수정했습니다.
데이터베이스나 스키마를 전환한 후 존재하지 않는 스테이지를 참조하는
session.get_session_stage의 버그를 수정했습니다.Snowpark pandas 플러그인을 명시적으로 초기화하지 않고
DataFrame.to_snowpark_pandas를 호출하면 오류가 발생하는 버그를 수정했습니다.동적 테이블 생성에서
explode함수를 사용하면outer매개 변수에 대한 부울 타입 캐스팅이 부적절하여 SQL 컴파일 오류가 발생하는 버그를 수정했습니다.
Snowpark 로컬 테스트 업데이트¶
새로운 기능¶
UDF 호출에 열을 입력 데이터로 전달할 때 타입 강제 변환에 대한 지원을 추가했습니다.
Index.identical를 지원하는 기능이 추가되었습니다.
버그 수정 사항¶
DataFrameWriter.save_as_table의 잘라내기 모드에서 기존 테이블의 열 중 일부만 포함하는 DataFrames 를 잘못 처리하는 버그를 수정했습니다.함수
to_timestamp가 열 데이터 타입의 기본 타임존을 설정하지 않는 버그를 수정했습니다.
Snowpark pandas API 업데이트¶
새로운 기능¶
다음 기능을 포함하여
Timedelta타입에 대한 제한적인 지원을 추가했습니다. Snowpark pandas는 지원되지 않는Timedelta사용 사례에 대해NotImplementedError를 발생시킵니다.copy,cache_result,shift,sort_index,assign,bfill,ffill,fillna,compare,diff,drop,dropna,duplicated,empty,equals,insert,isin,isna,items,iterrows,join,len,mask,melt,merge,nlargest,nsmallest,to_pandas를 통한Timedelta타입 추적 지원.astype을 통해 timedelta가 아닌 타입을 timedelta 타입으로 변환하기 위한 지원.Timedelta를 지원하지 않는 나머지 메서드에 대해서는NotImplementedError가 발생합니다.2개의 타임스탬프를 빼서
Timedelta를 구하는 기능 지원.Timedelta데이터 열을 사용한 인덱싱 지원.타임스탬프와
Timedelta를 더하거나 빼는 기능 지원.두
Timedelta값 사이의 이진 산술 지원.이진 산술 및
Timedelta값과 숫자 값 사이의 비교 지원.지연
TimedeltaIndex지원.pd.to_timedelta지원.GroupBy집계min,max,mean,idxmax,idxmin,std,sum,median,count,any,all,size,nunique,head,tail,aggregate지원.GroupBy필터링first및last지원.TimedeltaIndex특성days,seconds,microseconds,nanoseconds지원.axis=0및axis=1에 대한 타임스탬프 열이 있는diff지원.TimedeltaIndex메서드ceil,floor,round지원.TimedeltaIndex.total_seconds메서드 지원.
인덱스의 산술 및 비교 연산자에 대한 지원을 추가했습니다.
Series.dt.round를 지원하는 기능이 추가되었습니다.DatetimeIndex에 대한 설명서 페이지를 추가했습니다.Index.name,Index.names,Index.rename,Index.set_names에 대한 지원을 추가했습니다.Index.__repr__를 지원하는 기능이 추가되었습니다.DatetimeIndex.month_name및DatetimeIndex.day_name에 대한 지원이 추가되었습니다.Series.dt.weekday,Series.dt.time,DatetimeIndex.time에 대한 지원을 추가했습니다.Index.min및Index.max에 대한 지원이 추가되었습니다.pd.merge_asof를 지원하는 기능이 추가되었습니다.Series.dt.normalize및DatetimeIndex.normalize에 대한 지원이 추가되었습니다.Index.is_boolean,Index.is_integer,Index.is_floating,Index.is_numeric,Index.is_object에 대한 지원을 추가했습니다.DatetimeIndex.round,DatetimeIndex.floor,DatetimeIndex.ceil에 대한 지원을 추가했습니다.Series.dt.days_in_month및Series.dt.daysinmonth에 대한 지원이 추가되었습니다.DataFrameGroupBy.value_counts및SeriesGroupBy.value_counts에 대한 지원이 추가되었습니다.Series.is_monotonic_increasing및Series.is_monotonic_decreasing에 대한 지원이 추가되었습니다.Index.is_monotonic_increasing및Index.is_monotonic_decreasing에 대한 지원이 추가되었습니다.pd.crosstab를 지원하는 기능이 추가되었습니다.pd.bdate_range에 대한 지원을 추가했고pd.date_range와pd.bdate_range모두에 대해 비즈니스 빈도 지원(B, BME, BMS, BQE, BQS, BYE, BYS)을 포함했습니다.DataFrame.reindex및Series.reindex에서labels로 지연Index오브젝트에 대한 지원을 추가했습니다.Series.dt.days,Series.dt.seconds,Series.dt.microseconds,Series.dt.nanoseconds에 대한 지원을 추가했습니다.숫자형 또는 문자열 타입의
Index에서DatetimeIndex를 생성하기 위한 지원을 추가했습니다.Timedelta오브젝트를 사용한 문자열 인덱싱 지원을 추가했습니다.Series.dt.total_seconds메서드에 대한 지원을 추가했습니다.
개선 사항¶
동일한 DataFrame에서 오는 시리즈에 대해 작업을 수행할 때 불필요한 조인을 방지하여 연결 및 조인 성능을 개선했습니다.
타입이 로컬에서 캐시된 경우 메타데이터 쿼리 수행을 방지하기 위해
quoted_identifier_to_snowflake_type을 리팩터링했습니다.모든 로컬 입력 사례를 처리하도록
pd.to_datetime을 개선했습니다.클라이언트에 데이터를 끌어오지 않고 다른 지연 인덱스에서 지연 인덱스를 만듭니다.
인덱스 비트 연산자에 대해
NotImplementedError를 발생시켰습니다.Index.names가 목록과 같은 오브젝트가 아닌 오브젝트로 설정된 경우 더 명확한 오류 메시지를 표시합니다.MultiIndex값을 로컬로 끌어올 때마다 경고를 발생시킵니다.임시 테이블 생성이 트리거될 때 생성 이유를 포함하도록
pd.read_snowflake에 대한 경고 메시지를 개선했습니다.즉각적인 평가가 필요한 검사를 방지함으로써
DataFrame.set_index를 위한 성능 또는DataFrame.index또는Series.index설정을 위한 성능을 개선했습니다. 결과적으로, 새 인덱스가 현재Series또는DataFrame오브젝트 길이와 일치하지 않으면ValueError가 더 이상 발생하지 않습니다. 대신,Series또는DataFrame오브젝트가 제공된 인덱스보다 길면Series또는DataFrame의 새 인덱스가 “추가” 요소의NaN값으로 채워집니다. 그렇지 않으면 제공된 인덱스의 추가 값이 무시됩니다.
버그 수정 사항¶
pd.Timedelta스칼라에서 나노초를 무시하는 동작을 중지했습니다.이진 연산 트리에서
AssertionError를 수정했습니다.명명된 Series를 사용하여
Series.dt.isocalendar에서 버그를 수정했습니다.DataFrame 열에서 파생된 Series 오브젝트에 대한
inplace인자를 수정했습니다.Series.reindex와DataFrame.reindex가 결과 인덱스 이름을 올바르게 업데이트하지 못하는 버그를 수정했습니다.axis=1이 지정된 경우Series.take에서 오류가 발생하지 않는 버그를 수정했습니다.
버전 1.21.1(2024-09-05)¶
버그 수정 사항¶
비동기 작업에서
to_pandas_batches를 사용하면 비동기 쿼리 완료 대기가 부적절하게 처리되어 오류가 발생하는 버그를 수정했습니다.
버전 1.21.0(2024-08-19)¶
새로운 기능¶
두 Snowpark DataFrames의 동일성을 검사하는 유틸리티 함수인
snowflake.snowpark.testing.assert_dataframe_equal에 대한 지원을 추가했습니다.
개선 사항¶
서버 측 문자열 크기 제한에 대한 지원을 추가했습니다.
선택적 인자와 함께 저장 프로시저 UDF와 UDTF를 생성하고 호출하기 위한 지원을 추가했습니다.
DataFrame.lineage.traceAPI에서 열 계보에 대한 지원을 추가했습니다.INFER_SCHEMA_OPTIONS를 통해DataFrameReader에INFER_SCHEMA옵션을 전달하기 위한 지원을 추가했습니다.parameters매개 변수를Column.rlike및Column.regexp로 전달하기 위한 지원을 추가했습니다.DataFrame이 더 이상 참조되지 않을 때(즉, 가비지가 수집될 때) 현재 세션에서
df.cache_result()에 의해 생성된 임시 테이블을 자동으로 정리하기 위한 지원을 추가했습니다. 이는 아직 실험적인 기능이며 기본적으로 활성화되어 있지 않습니다.session.auto_clean_up_temp_table_enabled를True로 설정하면 활성화할 수 있습니다.snowflake.snowpark.functions.to_date의fmt매개 변수에 문자열 리터럴에 대한 지원을 추가했습니다.
버그 수정 사항¶
*열을 선택하기 위해 생성된 SQL에 잘못된 하위 쿼리가 있는 버그를 수정했습니다.잘못된 격리 수준으로 인해 pandas DataFrame에 특정 변환이 수행되는 경우
DataFrame.to_pandas_batches에서 반복기가 오류를 발생시킬 수 있는 버그를 수정했습니다.따옴표로 묶인 특징 뷰의 이름과 버전을 올바르게 분할하도록
DataFrame.lineage.trace의 버그를 수정했습니다.비어 있는 목록을 전달하면 유효하지 않은 SQL 생성을 유발하는
Column.isin의 버그를 수정했습니다.목록과 같은 항목이 있는 셀을 설정하는 동안
NotImplementedError를 발생시키지 못하는 버그를 수정했습니다.
Snowpark 로컬 테스트 업데이트¶
새로운 기능¶
다음 APIs에 대한 지원이 추가되었습니다.
snowflake.snowpark.functionsrankdense_rankpercent_rankcume_distntiledatediffarray_agg
snowflake.snowpark.column.Column.within_group
모의 계획에 대한 정규식 문에서 플래그 구문 분석에 대한 지원을 추가했습니다. 이는 위의
rlike및regexp변경 사항과 동등성을 유지합니다.
버그 수정 사항¶
윈도우 함수
LEAD와LAG가 옵션ignore_nulls를 올바로 처리하지 못하는 버그를 수정했습니다.테이블 병합 작업을 삽입하는 동안 결과 DataFrame에 값이 채워지지 않는 버그를 수정했습니다.
개선 사항¶
정수 인덱싱에 대한 pandas
FutureWarning을 수정합니다.
Snowpark pandas API 업데이트¶
새로운 기능¶
DataFrame.backfill,DataFrame.bfill,Series.backfill,Series.bfill에 대한 지원을 추가했습니다.기본 매개 변수를 사용하여
DataFrame.compare및Series.compare에 대한 지원을 추가했습니다.Series.dt.microsecond및Series.dt.nanosecond에 대한 지원이 추가되었습니다.Index.is_unique및Index.has_duplicates에 대한 지원이 추가되었습니다.Index.equals를 지원하는 기능이 추가되었습니다.Index.value_counts를 지원하는 기능이 추가되었습니다.Series.dt.day_name및Series.dt.month_name에 대한 지원이 추가되었습니다.Index에 인덱싱 지원을 추가했습니다(예:
df.index[:10]).DataFrame.unstack및Series.unstack에 대한 지원이 추가되었습니다.DataFrame.asfreq및Series.asfreq에 대한 지원이 추가되었습니다.Series.dt.is_month_start및Series.dt.is_month_end에 대한 지원이 추가되었습니다.Index.all및Index.any에 대한 지원이 추가되었습니다.Series.dt.is_year_start및Series.dt.is_year_end에 대한 지원이 추가되었습니다.Series.dt.is_quarter_start및Series.dt.is_quarter_end에 대한 지원이 추가되었습니다.지연
DatetimeIndex에 대한 지원을 추가했습니다.Series.argmax및Series.argmin에 대한 지원이 추가되었습니다.Series.dt.is_leap_year를 지원하는 기능이 추가되었습니다.DataFrame.items를 지원하는 기능이 추가되었습니다.Series.dt.floor및Series.dt.ceil에 대한 지원이 추가되었습니다.Index.reindex를 지원하는 기능이 추가되었습니다.DatetimeIndex속성year,month,day,hour,minute,second,microsecond,nanosecond,date,dayofyear,day_of_year,dayofweek,day_of_week,weekday,quarter,is_month_start,is_month_end,is_quarter_start,is_quarter_end,is_year_start,is_year_end,is_leap_year에 대한 지원을 추가했습니다.Resampler.fillna및Resampler.bfill에 대한 지원이 추가되었습니다.Timedelta열과to_pandas생성을 포함하여,Timedelta타입에 대한 제한적인 지원을 추가했습니다.Index.argmax및Index.argmin에 대한 지원이 추가되었습니다.
개선 사항¶
Snowpark pandas를 가져올 때 표시되는 공개 미리 보기 경고 메시지를 제거했습니다.
SnowflakeQueryCompiler.is_series_like메서드에서 불필요한 카운트 쿼리를 제거했습니다.Dataframe.columns는 이제 Snowpark Index 오브젝트 대신 네이티브 pandas Index 오브젝트를 반환합니다.쿼리 컴파일러에서
Index를 생성하기 위해Index생성자에서query_compiler인자를 리팩터링하고 도입했습니다.pd.to_datetime은 이제Series오브젝트 대신DatetimeIndex오브젝트를 반환합니다.pd.date_range는 이제Series오브젝트 대신DatetimeIndex오브젝트를 반환합니다.
버그 수정 사항¶
지원되지 않는 집계 함수를
pivot_table에 전달하여KeyError대신NotImplementedError를 발생시키도록 했습니다.지원되지 않는 집계에 대한 오류 메시지와 원격 분석에서 축 레이블과 호출 가능한 이름을 제거했습니다.
sort_values이후에Series.drop_duplicates및DataFrame.drop_duplicates호출 시 발생하는AssertionError를 수정했습니다.Index.to_frame에서 이름이 지정되지 않은 경우 결과 프레임의 열 이름이 잘못 표시될 수 있는 버그를 수정했습니다.일부 Index docstring이 무시되는 버그를 수정했습니다.
Series.reset_index(drop=True)에서 결과 이름이 잘못될 수 있는 버그를 수정했습니다.기본 윈도우 식의 올바른 열을 기준으로 하는
Groupby.first/last순서 지정의 버그를 수정했습니다.
버전 1.20.0(2024-07-17)¶
Python용 Snowpark Library 버전 1.20.0에는 몇 가지 새로운 기능이 도입되었습니다.
새로운 기능¶
DataFrame의 테이블 저장 프로시저 함수에 대해 Open Telemetry API를 사용하는 분산 추적을 추가했습니다._execute_and_get_query_id
arrays_zip함수 지원을 추가했습니다.숫자 값에 대한 불필요한 캐스트를 방지하여 이진 열 식과
df._in의 성능을 개선했습니다.session.eliminate_numeric_sql_value_cast_enabled = True를 설정하여 이러한 최적화를 활성화할 수 있습니다.대상 테이블이 존재하지 않고
auto_create_table=False일 때write_pandas에 대한 오류 메시지를 개선했습니다.Snowpark의 UDxF 함수에 Open Telemetry 추적 기능을 추가했습니다.
Snowpark의 저장 프로시저 등록에 대한 Open Telemetry 추적 기능을 추가했습니다.
Session.query_tag에서 앱 이름을 JSON 형식으로 설정하는Session.SessionBuilder.app_name함수에format_json이라는 새로운 선택적 매개 변수를 추가했습니다. 기본적으로, 이 매개 변수는False로 설정됩니다.
버그 수정 사항¶
lag(x, 0)에 대해 생성된 SQL이 올바르지 않고 오류 메시지argument 1 to function LAG needs to be constant, found 'SYSTEM$NULL_TO_FIXED(null)'이 발생하며 실패하는 버그를 수정했습니다.
Snowpark 로컬 테스트 업데이트¶
새로운 기능¶
다음 APIs에 대한 지원이 추가되었습니다.
snowflake.snowpark.functionsrandom
모의 함수를 등록할 때
patch함수에 새로운 매개 변수를 추가했습니다.distinct를 사용하면 SQL 함수가 서로 달라야 하는 경우에 대체 함수를 지정할 수 있습니다.pass_column_index는 입력 데이터에 대한pandas.Index를 포함하는 모의 함수에 명명된 매개 변수column_index를 전달합니다.pass_row_index는 모의 함수에 명명된 매개 변수row_index를 전달하는데, 이 매개 변수는 함수가 현재 작동 중인 0부터 시작되는 행 번호입니다.pass_input_data는 현재 식에 대한 전체 입력 데이터 프레임을 포함하는 모의 함수에 명명된 매개 변수input_data를 전달합니다.DataFrameWriter.save_as_table메서드에서column_order매개 변수에 대한 지원을 추가했습니다.
버그 수정 사항¶
BinaryExpressions에서 사용할 때DecimalType열이 정수 전체 자릿수로 잘못 잘리는 버그를 수정했습니다.
Snowpark pandas API 업데이트¶
새로운 기능¶
다음에 대한 새로운 API 지원을 추가했습니다.
DataFrames
DataFrame.nlargest및DataFrame.nsmallestDataFrame.assignDataFrame.stackDataFrame.pivotDataFrame.to_csvDataFrame.corrDataFrame.corrDataFrame.equalsDataFrame.reindexDataFrame.at및DataFrame.iat
Series
Series.nlargest및Series.nsmallestSeries.at및Series.iatSeries.dt.isocalendarSeries.equalsSeries.reindexSeries.to_csvSeries.case_when(조건 또는 교체가 호출 가능한 경우 제외)series.plot()(데이터를 로컬 클라이언트에 구체화)
GroupBy
DataFrameGroupBy.all및DataFrameGroupBy.anyDataFrameGroupBy및SeriesGroupBy집계first와lastDataFrameGroupBy.get_groupSeriesGroupBy.all및SeriesGroupBy.any
일반
pd.pivotread_excel(처리를 위해 로컬 pandas 사용)df.plot()(데이터를 로컬 클라이언트에 구체화)
기존 API를 다음과 같이 확장했습니다.
DataFrame.sample및Series.sample에서replace및frac > 1을 위한 지원을 추가했습니다.table의 값이 단일 코드 포인트 문자열인 경우Series.str.translate에 대한 부분적 지원을 추가했습니다.method매개 변수가fillna에서 사용될 때limit매개 변수에 대한 지원을 추가했습니다.
Index와 그 API에 대한 설명서 페이지를 추가했습니다.
버그 수정 사항¶
스칼라
other가 리터럴 0인 경우 np.where 및 df.where를 사용할 때 발생하는 문제를 수정했습니다.dtype=np.uint64로 Snowpark pandasDataFrame또는Series를 변환할 때 전체 자릿수 손실과 관련된 버그를 수정했습니다.index와columns이pivot_table중에 DataFrame에 모든 열을 포함하는 경우values가index로 설정되는 버그를 수정했습니다.
개선 사항¶
Index.copy()를 지원하는 기능이 추가되었습니다.Index API
dtype,values,item(),tolist(),to_series(),to_frame()에 대한 지원을 추가했습니다.pd.pivot_table과DataFrame.pivot_table에 행이 없는 DataFrames에 대한 지원을 확장합니다.DataFrame.sort_index및Series.sort_index에서inplace매개 변수에 대한 지원을 추가했습니다.
버전 1.19.0(2024-06-25)¶
Python용 Snowpark Library 버전 1.19.0에는 몇 가지 새로운 기능이 도입되었습니다.
새로운 기능¶
to_boolean함수에 대한 지원을 추가했습니다.Index및 해당 API에 대한 설명서 페이지를 추가했습니다.
버그 수정 사항¶
작업에서 테이블 반환 타입이 있는 Python 저장 프로시저를 실행할 때 실패하는 버그를 수정했습니다.
DataFrame에 있는 열 개수가 500개를 넘을 때
RecursionError: maximum recursion depth exceeded로 인해df.dropna가 실패하는 버그를 수정했습니다.AsyncJob.result("no_result")가 쿼리 실행이 완료될 때까지 기다리지 않는 버그를 수정했습니다.
로컬 테스트 업데이트¶
새로운 기능¶
UDF와 저장 프로시저를 등록할 때
strict매개 변수에 대한 지원을 추가했습니다.
버그 수정 사항¶
convert_timezone에서source_timezone매개 변수를 설정하면 오류가 반환되는 버그를 수정했습니다.DateType타입의 빈 데이터로 DataFrame을 생성하면AttributeError가 발생하는 버그를 수정했습니다.업데이트 절이 있지만 업데이트가 이루어지지 않는 경우 테이블 병합이 실패하는 버그를 수정했습니다.
들어오는 열에 연속되지 않은 행 인덱스가 있는 경우
IndexError를 발생시키는to_char의 모의 구현에서 버그를 수정했습니다.들어오는 열에 연속되지 않은 행 인덱스가 있는 경우
IndexError를 발생시키는CaseExpr식 처리 시 발생하는 버그를 수정했습니다.들어오는 열에 연속되지 않은 행 인덱스가 있는 경우
IndexError를 발생시키는Column.like의 구현에서 버그를 수정했습니다.
개선 사항¶
DataFrame.replace,DataFrame.dropna및 모의 함수iff의 구현에서 타입 강제 변환에 대한 지원을 추가했습니다.
Snowpark pandas API 업데이트¶
새로운 기능¶
freq및limit매개 변수 없이DataFrame.pct_change및Series.pct_change에 대한 부분 지원을 추가했습니다.Series.str.get에 대한 지원을 추가했습니다.Series.dt.dayofweek,Series.dt.day_of_week,Series.dt.dayofyear,Series.dt.day_of_year에 대한 지원을 추가했습니다.Series.str.__getitem__ (Series.str[...])에 대한 지원을 추가했습니다.Series.str.lstrip및Series.str.rstrip에 대한 지원을 추가했습니다.DataFrameGroupby.size및SeriesGroupby.size에 대한 지원을 추가했습니다.axis=0을 사용하여 집계count,sum,min,max,mean,std,var의DataFrame.expanding및Series.expanding에 대한 지원을 추가했습니다.axis=0을 사용한 집계 카운트를 위해DataFrame.rolling및Series.rolling에 대한 지원을 추가했습니다.Series.str.match에 대한 지원을 추가했습니다.집계 크기의
DataFrame.resample및Series.resample에 대한 지원을 추가했습니다.
버그 수정 사항¶
GroupBy.aggregate열의 출력이 잘못 정렬되는 버그를 수정했습니다.서로 다른
dtypes의 중복 열이 있는 프레임에서DataFrame.describe를 호출하면 오류나 잘못된 결과가 발생할 수 있는 버그를 수정했습니다.이제
window=0이ValueError대신NotImplementedError를 발생시키도록DataFrame.rolling및Series.rolling의 버그를 수정했습니다.
개선 사항¶
DataFrame.aggregate및Series.aggregate에서axis=0을 사용하여 명명된 집계에 대한 지원을 추가했습니다.pd.read_csv는 네이티브 pandas CSV 파서를 사용하여 읽은 다음 parquet를 사용하여 Snowflake에 데이터를 업로드합니다. 이를 통해 날짜 구문 분석 및 숫자 변환을 포함하여read_csv에서 지원하는 대부분의 매개 변수를 사용할 수 있습니다. Parquet를 통한 업로드 속도는 CSV를 통한 업로드 속도보다 약 2배 빠릅니다.Snowpark pandas에서
pd.Index를 직접 지원하기 위한 초기 작업입니다. Snowpark pandas의 일급 구성 요소인pd.Index에 대한 지원을 활발하게 개발 중입니다.지연 인덱스 생성자와
len,shape,size,empty,to_pandas(),names에 대한 지원을 추가했습니다.df.index의 경우 Snowpark pandas는 지연 인덱스 오브젝트를 생성합니다.df.columns의 경우 데이터가 이미 로컬에 저장되어 있으므로 Snowpark pandas는Index의 비지연 버전을 지원합니다.
버전 1.18.0(2024-05-28)¶
Snowpark 라이브러리 버전 1.18.0에는 몇 가지 새로운 기능이 도입되었습니다.
새로운 기능¶
사용자가 세션 지속 시간 동안
DataFrame및Series오브젝트를 임시 테이블에 유지하여 후속 연산 대기 시간을 개선할 수 있는DataFrame.cache_result및Series.cache_result메서드를 추가했습니다.
개선 사항¶
index매개 변수가 없는 경우와margins매개 변수가 있는 경우DataFrame.pivot_table에 대한 지원이 추가되었습니다.DataFrame.shift,Series.shift,DataFrameGroupBy.shift및SeriesGroupBy.shift의 서명을 pandas 2.2.1과 일치하도록 업데이트했습니다. Snowpark pandas는 아직 새로 추가된 접미사 인자 또는 기간의 시퀀스 값을 지원하지 않습니다.Series.str.split에 대한 지원이 다시 추가되었습니다.
버그 수정 사항¶
문자열 메서드의 혼합 열 관련 문제(
Series.str.*)를 수정했습니다.
로컬 테스트 업데이트¶
새로운 기능¶
파일 형식 CSV 및 JSON에 대한 다음
DataFrameReader읽기 옵션 지원이 추가되었습니다.PURGE
PATTERN
False값이 포함된 INFER_SCHEMAUTF8값이 포함된 ENCODING
DataFrame.analytics.moving_agg및DataFrame.analytics.cumulative_agg_agg에 대한 지원이 추가되었습니다.UDF 및 저장 프로시저 등록 중
if_not_exists매개 변수에 대한 지원이 추가되었습니다.
버그 수정 사항¶
소수점 초 부분이 올바르게 처리되지 않는 처리 시간 형식의 버그를 수정했습니다.
*에서 함수 호출이 실패하는 버그를 수정했습니다.map및struct타입 오브젝트를 생성할 수 없는 버그를 수정했습니다.함수
date_add가 일부 숫자 유형을 처리할 수 없는 버그를 수정했습니다.TimestampType형변환 시 잘못된 데이터가 생성되던 버그를 수정했습니다.경우에 따라
DecimalType데이터의 정밀도가 부정확하게 표시되는 버그를 수정했습니다.누락된 테이블 또는 뷰를 참조하면
IndexError가 발생하는 버그를 수정했습니다.모의 함수
to_timestamp_ntz가None데이터를 처리할 수 없는 버그를 수정했습니다.모의 UDFs가
None의 출력 데이터를 부적절하게 처리하는 버그를 수정했습니다.조인 작업 후
DataFrame.with_column_renamed가 상위DataFrames의 특성을 무시하던 버그를 수정했습니다.큰 값을 pandas
DataFrame으로 변환할 때 정수 전체 자릿수가 손실되던 버그를 수정했습니다.pandas
DataFrame에서DataFrame을 만들 때datetime오브젝트의 스키마가 잘못되던 버그가 수정되었습니다.null 데이터가 잘못 처리되는
Column.equal_nan구현의 버그를 수정했습니다.조인 작업 후
DataFrame.drop가 상위DataFrames의 특성을 무시하던 버그를 수정했습니다.모의 함수
date_part에서 열 유형이 잘못 설정되는 버그가 수정되었습니다.null 허용이 불가능한 열에 null 데이터를 삽입할 때
DataFrameWriter.save_as_table가 예외를 발생시키지 않는 버그를 수정했습니다.DataFrameWriter.save_as_table의 구현 버그를 수정했습니다. 여기서,수신 데이터의 스키마가 기존 테이블과 다른 경우 추가 또는 잘라내기가 실패했습니다.
수신 데이터에 null 허용 열이 지정되지 않은 경우 잘라내기가 실패했습니다.
개선 사항¶
사용되지 않으므로,
pyarrow종속성 검사를 제거했습니다.Column.cast의 대상 타입 적용 범위를 개선하여 부울 및 모든 통합 유형에 대한 형변환 지원을 추가했습니다.UDFs 및 저장 프로시저 호출 시 오류 환경을 조정했습니다.
is_permanent및anonymous옵션에 대한 적절한 오류 메시지를 UDFs 및 저장 프로시저 등록에 추가하여 해당 기능이 아직 지원되지 않는다는 점을 명확히 밝혔습니다.지원되지 않는 옵션과 값을 사용하는 파일 읽기 연산에는 이제 경고와 불분명한 오류 정보 대신
NotImplementedError를 표시합니다.
버전 1.17.0(2024-05-21)¶
Snowpark 라이브러리 버전 1.17.0에는 몇 가지 새로운 기능이 도입되었습니다.
새로운 기능¶
아래 나열된 함수를 사용하여 테이블과 뷰에 설명을 추가하는 지원이 추가되었습니다.
DataFrameWriter.save_as_tableDataFrame.create_or_replace_viewDataFrame.create_or_replace_temp_viewDataFrame.create_or_replace_dynamic_table
개선 사항¶
스키마를 지정하지 않고 CSV 파일을 읽을 때
{"infer_schema": True}를 설정하라는 오류 메시지를 표시하도록 개선했습니다.
로컬 테스트 업데이트¶
새로운 기능¶
모의 함수
to_timestamp_ltz,to_timestamp_ntz,to_timestamp_tz,to_timestamp에서NumericType및VariantType데이터 변환에 대한 지원이 추가되었습니다.모의 함수
to_char에서DecimalType,BinaryType,ArrayType,MapType,TimestampType,DateType및TimeType데이터 변환에 대한 지원이 추가되었습니다.다음 APIs에 대한 지원이 추가되었습니다.
snowflake.snowpark.functions.to_varcharsnowflake.snowpark.DataFrame.pivotsnowflake.snowpark.Session.cancel_all
새로운 예외 클래스
snowflake.snowpark.mock.exceptions.SnowparkLocalTestingException이 도입되었습니다.FloatType으로의 형변환에 대한 지원이 추가되었습니다.
버그 수정 사항¶
정리 단계에서 저장 프로시저와 UDFs가 이미
sys.path에 있는 가져오기를 제거하지 못하는 버그를 수정했습니다.datetime형식을 처리할 때 분수 두 번째 부분이 올바르게 처리되지 않는 버그를 수정했습니다.Windows 플랫폼에서 파일 작업이 디렉터리 이름의 파일 구분 기호를 제대로 처리할 수 없는 버그를 수정했습니다.
Windows 플랫폼에서 pandas 데이터프레임을 읽을 때 정수 데이터가 포함된
IntervalType열을 처리할 수 없는 버그를 수정했습니다.사용자가 동일한 별칭을 가진 여러 열을 선택할 수 없는 버그를 수정했습니다.
식별자가 따옴표로 묶인 경우
Session.get_current_[schema |database| role |user| account|warehouse]가 대문자 식별자를 반환하는 버그를 수정했습니다.함수
substr및substring이 0 기반start_expr을 처리할 수 없는 버그를 수정했습니다.
개선 사항¶
오류 사례에 대해 비로컬 실행에서 발생하는
SnowparkSQLException과 동등한 수준인SnowparkLocalTestingException으로 상향 조정하여 오류 경험을 표준화했습니다.메서드 호출 시
NotImplementError가 발생하도록Session.write_pandas메서드의 오류 경험을 개선했습니다.비로컬 실행에서 닫힌 세션을 재사용하여 오류 경험을 조정했습니다.
버전 1.16.0(2024-05-08)¶
Snowpark 라이브러리 버전 1.16.0에는 몇 가지 새로운 기능이 도입되었습니다.
새로운 기능¶
Snowflake 오브젝트의 데이터 계보를 탐색할 수 있는
snowflake.snowpark.Session.lineage.trace가 추가되었습니다.Python 모듈로 제공된 패키지에 저장 프로시저를 등록하기 위한 지원이 추가되었습니다.
정형 타입 스키마 구문 분석에 대한 지원이 추가되었습니다.
버그 수정 사항¶
스키마를 추론할 때 이미 작은따옴표가 있는 스테이지 파일에 작은따옴표가 추가되던 버그가 수정되었습니다.
로컬 테스트 업데이트¶
새로운 기능¶
모의 함수
to_date에서StringType,TimestampType및VariantType데이터 변환에 대한 지원이 추가되었습니다.다음 APIs에 대한 지원이 추가되었습니다.
snowflake.snowpark.functions:getconcatconcat_ws
버그 수정 사항¶
NaT및NaN값이 인식되지 않는 버그를 수정했습니다.스키마를 추론할 때 이미 작은따옴표가 있는 스테이지 파일에 작은따옴표가 추가되던 버그가 수정되었습니다.
DataFrameReader.csv가 구분 기호가 포함된 따옴표로 묶은 값을 처리할 수 없던 버그를 수정했습니다.산술 계산에
None값이 있을 때 출력값이math.nan이 아닌None으로 유지되는 버그를 수정했습니다.sum및covar_pop함수에서 데이터에math.nan값이 있을 때 출력도math.nan이어야 하는 버그를 수정했습니다.스테이지 작업이 디렉터리를 처리할 수 없는 버그를 수정했습니다.
DataFrame.to_pandas가 전체 자릿수 38의 Snowflake 숫자 유형을int64로 간주하는 버그를 수정했습니다.
버전 1.15.0(2024-04-24)¶
Snowpark 라이브러리 버전 1.15.0에는 몇 가지 새로운 기능이 도입되었습니다.
새로운 기능¶
기본 테이블을 삭제하는 대신 잘라내어 기존 테이블을 덮어쓰는
truncate저장 모드가DataFrameWrite에 추가되었습니다.수집 작업 중에 쿼리 계획 높이와 중복 노드 수를 계산하기 위해 원격 측정 기능을 추가했습니다.
DataFrame에서 하나 이상의 파일로 데이터를 언로드하는 아래 함수가 스테이지에 추가되었습니다.DataFrame.write.jsonDataFrame.write.csvDataFrame.write.parquet
DataFrame및DataFrameWriter의 액션 함수에 오픈 텔레메트리 APIs를 사용한 분산 추적이 추가되었습니다.snowflake.snowpark.DataFrame:collectcollect_nowaitto_pandascountshow
snowflake.snowpark.DataFrameWriter:save_as_table
snowflake.snowpark.Session.file.get및snowflake.snowpark.Session.file.get_stream에snow://URLs에 대한 지원이 추가되었습니다.저장 프로시저 및 UDFs를
comment로 등록할 수 있도록 지원이 추가되었습니다.UDAF 클라이언트 지원이 공개 미리 보기로 제공됩니다. Snowflake의 UDAF 공개 미리 보기 발표를 기대해 주세요.
동적 피벗에 대한 지원이 추가되었습니다. 이 기능은 현재 비공개 미리 보기로 제공됩니다.
개선 사항¶
중복되는 하위 쿼리를 공통 테이블 식(CTEs)으로 변환하여 컴파일과 실행 모두에서 생성된 쿼리 성능을 개선했습니다. 이는 아직 실험적인 기능이며 기본적으로 활성화되어 있지 않습니다. 이 기능은
session.cte_optimization_enabled를True로 설정하여 활성화할 수 있습니다.
버그 수정 사항¶
저장 프로시저 및 사용자 정의 함수를 등록하는 쿼리 실행에
statement_params가 전달되지 않는 버그가 수정되었습니다.인용된 스테이지 위치에서
snowflake.snowpark.Session.file.get_stream이 실패하던 버그를 수정했습니다.utils.py의 내부 유형 힌트가 기본 모듈을 찾을 수 없는 경우AttributeError가 발생할 수 있는 버그를 수정했습니다.
로컬 테스트 업데이트¶
새로운 기능¶
UDFs 및 저장 프로시저 등록에 대한 지원이 추가되었습니다.
다음 APIs에 대한 지원이 추가되었습니다.
snowflake.snowpark.Session:file.putfile.put_streamfile.getfile.get_streamread.jsonadd_importremove_importget_importsclear_importsadd_packagesadd_requirementsclear_packagesremove_packageudf.registerudf.register_from_filesproc.registersproc.register_from_file
snowflake.snowpark.functionscurrent_databasecurrent_sessiondate_truncobject_constructobject_construct_keep_nullpowsqrtudfsproc
모의 함수
to_time에서StringType,TimestampType및VariantType데이터 변환에 대한 지원이 추가되었습니다.
버그 수정 사항¶
상수 함수의 열에 null이 채워지는 버그를 수정했습니다.
null 입력을 더 잘 처리하도록
to_object,to_array및to_binary를 수정했습니다.타임스탬프 데이터 비교에서 2262년 이후의 연도를 처리할 수 없는 버그를 수정했습니다.
Session.builder.getOrCreate가 생성된 모의 세션을 반환하는 버그를 수정했습니다.
버전 1.14.0(2024-03-20)¶
Snowpark 라이브러리 버전 1.14.0에는 몇 가지 새로운 기능이 도입되었습니다.
새로운 기능¶
process메서드를 사용하여 벡터화된 UDTFs를 생성하는 기능이 추가되었습니다.데이터프레임 함수에 대한 지원이 추가되었습니다.
to_timestamp_ltzto_timestamp_ntzto_timestamp_tzlocate
ASOF JOIN 타입에 대한 지원이 추가되었습니다.
다음 로컬 테스트 APIs에 대한 지원이 추가되었습니다.
snowflake.snowpark.functions:
to_doubleto_timestampto_timestamp_ltzto_timestamp_ntzto_timestamp_tzgreatestleastconvert_timezonedateadddate_part
snowflake.snowpark.Session:
get_current_accountget_current_warehouseget_current_roleuse_schemause_warehouseuse_databaseuse_role
개선 사항¶
로컬 테스트에 원격 측정 기능이 추가되었습니다.
존재하지 않는 경로를 읽거나 경로 아래에 파일이 없을 때
DataFrameReader의 오류 메시지에서FileNotFound오류가 표시되도록 개선했습니다.
버그 수정 사항¶
SnowflakePlanBuilder에서 이름이$로 시작하고 그 뒤에 숫자가 오는 열을save_as_table가 올바르게 필터링하지 못하는 버그가 수정되었습니다.가져오기 및 패키지를 확인할 때 명령 매개 변수가 효과가 없는 버그를 수정했습니다.
로컬 테스트의 버그가 수정되었습니다.
LEFT ANTI 및 LEFT SEMI 조인은 null 값을 가진 삭제 행을 조인합니다.
DataFrameReader.csv는 선택적 매개 변수field_optionally_enclosed_by를 지정하면 데이터를 잘못 구문 분석합니다.Column.regexp는pattern이Column인 경우에만 첫 번째 항목만 고려합니다.Table.update는 행의 null 값을 업데이트할 때KeyError를 표시합니다.VARIANT 열의 경우
DataFrame.collect에서 오류가 발생합니다.계산 시
count_distinct가 올바르게 동작하지 않습니다.정수 열에 null 값이 있으면
TypeError가 발생합니다.
버전 1.13.0(2024-02-26)¶
Snowpark 라이브러리 버전 1.13.0에는 몇 가지 새로운 기능이 도입되었습니다.
새로운 기능¶
함수
last_day에 선택적date_part인자에 대한 지원을 추가했습니다.세션이 생성된 후
SessionBuilder.app_name이query_tag를 설정합니다.다음 로컬 테스트 함수에 대한 지원을 추가했습니다.
current_timestampcurrent_datecurrent_timestrip_null_valueupperlowerlengthinitcap
개선 사항¶
모든 활성 세션을 닫는 인터프리터 종료 시 정리 논리를 추가했습니다.
버그 수정 사항¶
잘못된 격리 수준으로 인해 반복기가 완료되기 전에 다른 쿼리가 실행되면 반복기가 잘못된 결과를 산출할 수 있는
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 값이 있는
IntegerType열이 있는 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_exceptcreate_mapsign/signum
DataFrame.analytics에 다음 함수를 추가했습니다.여러 윈도우 크기로 합계 및 평균과 같은 이동 집계를 활성화하기 위해
DataFrame.analytics에moving_agg함수를 추가했습니다.여러 윈도우 크기로 합계 및 평균과 같은 이동 집계를 활성화하기 위해
DataFrame.analytics에cumulative_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에서 DataFrame을 복사할 때 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인 경우 예외를 발생시키는 버그를 수정했습니다.