2024년 Python용 Snowpark 라이브러리 릴리스 정보

이 문서에는 Snowpark Library for Python 에 대한 릴리스 정보가 있는데, 해당되는 경우 다음을 포함합니다.

  • 동작 변경 사항

  • 새로운 기능

  • 고객이 직면한 버그 수정

Snowflake는 Snowpark Library for Python 업데이트에 의미 체계 버전 관리를 사용합니다.

설명서는 Python용 Snowpark 개발자 가이드 섹션을 참조하십시오.

버전 1.23.0(2024-10-09)

새로운 기능

  • snowflake.snowpark.functions 에 다음과 같은 새로운 함수를 추가했습니다.

    • make_interval

  • 열별 정렬이 TIMESTAMP 또는 DATE 유형인 경우 Snowflake Interval 상수를 Window.range_between() 과 함께 사용하기 위한 지원을 추가했습니다.

  • 파일 쓰기에 대한 지원을 추가했습니다. 이 기능은 현재 비공개 미리 보기로 제공됩니다.

  • 쿼리 기록을 제출하는 스레드 ID를 추적하기 위해 QueryRecordthread_id 를 추가했습니다.

  • Session.stored_procedure_profiler 를 지원하는 기능이 추가되었습니다.

버그 수정 사항

  • 저장 프로시저나 UDxF를 타입 힌트와 함께 등록하면 함수에서 기본값을 읽으려고 할 때 NoneTypelen() 이 없다는 경고가 발생하는 버그를 수정했습니다.

Snowpark pandas API 업데이트

새로운 기능

  • TimedeltaIndex.mean 메서드에 대한 지원을 추가했습니다.

  • axis=0Timedelta 열을 agg 또는 aggregate 로 집계하는 일부 사례에 대한 지원을 추가했습니다.

  • pd.merge_asof 를 위해 by, left_by, right_by, left_index, right_index 에 대한 지원을 추가했습니다.

  • 매개 변수 include_describeSession.query_history 로 전달하기 위한 지원을 추가했습니다.

  • DatetimeIndex.meanDatetimeIndex.std 메서드에 대한 지원을 추가했습니다.

  • Resampler.asfreq, Resampler.indices, Resampler.nunique, Resampler.quantile 에 대한 지원을 추가했습니다.

  • closed = "left"resample 빈도 W, ME, YE 에 대한 지원을 추가했습니다.

  • pairwise = False 및 int windowDataFrame.rolling.corrSeries.rolling.corr 에 대한 지원을 추가했습니다.

  • Rolling 에 대해 문자열 시간 기반 windowmin_periods = None 에 대한 지원을 추가했습니다.

  • DataFrameGroupBy.fillnaSeriesGroupBy.fillna 에 대한 지원이 추가되었습니다.

  • data, index, columns 인자로 지연 Index 오브젝트를 사용하여 SeriesDataFrame 오브젝트를 생성하기 위한 지원을 추가했습니다.

  • DataFrame / Series data 에 없는 indexcolumn 값으로 SeriesDataFrame 오브젝트를 생성하기 위한 지원을 추가했습니다.

  • pd.read_sas 에 대한 지원을 추가했습니다(처리를 위해 네이티브 pandas 사용).

  • Timedelta 시리즈와 열에 rolling().count()expanding().count() 를 적용하기 위한 지원을 추가했습니다.

  • pd.date_rangepd.bdate_range 에서 모두 tz 에 대한 지원을 추가했습니다.

  • Series.items 를 지원하는 기능이 추가되었습니다.

  • pd.to_datetime 에서 errors="ignore" 에 대한 지원을 추가했습니다.

  • DataFrame.tz_localizeSeries.tz_localize 에 대한 지원이 추가되었습니다.

  • DataFrame.tz_convertSeries.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.applyconvert_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_remove

    • ln

개선 사항

  • use_logical_type 옵션을 더 명확하게 하여 Session.write_pandas 에 대한 설명서를 개선했습니다.

  • DataFrameWriter.save_as_table 에 다음을 지정하기 위한 지원을 추가했습니다.

    • enable_schema_evolution

    • data_retention_time

    • max_data_extension_time

    • change_tracking

    • copy_grants

    • iceberg_config - 다음의 Iceberg 구성 옵션을 포함할 수 있는 사전:

      • external_volume

      • catalog

      • base_location

      • catalog_sync

      • storage_serialization_policy

  • DataFrameWriter.copy_into_table 에 다음을 지정하기 위한 지원을 추가했습니다.

    • iceberg_config - 다음의 Iceberg 구성 옵션을 포함할 수 있는 사전:

      • external_volume

      • catalog

      • base_location

      • catalog_sync

      • storage_serialization_policy

  • DataFrame.create_or_replace_dynamic_table 에 다음 매개 변수를 지정하기 위한 지원을 추가했습니다.

    • mode

    • refresh_mode

    • initialize

    • clustering_keys

    • is_transient

    • data_retention_time

    • max_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 필터링 firstlast 지원.

    • TimedeltaIndex 특성 days, seconds, microseconds, nanoseconds 지원.

    • axis=0axis=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_nameDatetimeIndex.day_name 에 대한 지원이 추가되었습니다.

  • Series.dt.weekday, Series.dt.time, DatetimeIndex.time 에 대한 지원을 추가했습니다.

  • Index.minIndex.max 에 대한 지원이 추가되었습니다.

  • pd.merge_asof 를 지원하는 기능이 추가되었습니다.

  • Series.dt.normalizeDatetimeIndex.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_monthSeries.dt.daysinmonth 에 대한 지원이 추가되었습니다.

  • DataFrameGroupBy.value_countsSeriesGroupBy.value_counts 에 대한 지원이 추가되었습니다.

  • Series.is_monotonic_increasingSeries.is_monotonic_decreasing 에 대한 지원이 추가되었습니다.

  • Index.is_monotonic_increasingIndex.is_monotonic_decreasing 에 대한 지원이 추가되었습니다.

  • pd.crosstab 를 지원하는 기능이 추가되었습니다.

  • pd.bdate_range 에 대한 지원을 추가했고 pd.date_rangepd.bdate_range 모두에 대해 비즈니스 빈도 지원(B, BME, BMS, BQE, BQS, BYE, BYS)을 포함했습니다.

  • DataFrame.reindexSeries.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.reindexDataFrame.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.trace API에서 열 계보에 대한 지원을 추가했습니다.

  • INFER_SCHEMA_OPTIONS 를 통해 DataFrameReaderINFER_SCHEMA 옵션을 전달하기 위한 지원을 추가했습니다.

  • parameters 매개 변수를 Column.rlikeColumn.regexp 로 전달하기 위한 지원을 추가했습니다.

  • DataFrame이 더 이상 참조되지 않을 때(즉, 가비지가 수집될 때) 현재 세션에서 df.cache_result() 에 의해 생성된 임시 테이블을 자동으로 정리하기 위한 지원을 추가했습니다. 이는 아직 실험적인 기능이며 기본적으로 활성화되어 있지 않습니다. session.auto_clean_up_temp_table_enabledTrue 로 설정하면 활성화할 수 있습니다.

  • snowflake.snowpark.functions.to_datefmt 매개 변수에 문자열 리터럴에 대한 지원을 추가했습니다.

버그 수정 사항

  • * 열을 선택하기 위해 생성된 SQL에 잘못된 하위 쿼리가 있는 버그를 수정했습니다.

  • 잘못된 격리 수준으로 인해 pandas DataFrame에 특정 변환이 수행되는 경우 DataFrame.to_pandas_batches 에서 반복기가 오류를 발생시킬 수 있는 버그를 수정했습니다.

  • 따옴표로 묶인 특징 뷰의 이름과 버전을 올바르게 분할하도록 DataFrame.lineage.trace 의 버그를 수정했습니다.

  • 비어 있는 목록을 전달하면 유효하지 않은 SQL 생성을 유발하는 Column.isin 의 버그를 수정했습니다.

  • 목록과 같은 항목이 있는 셀을 설정하는 동안 NotImplementedError 를 발생시키지 못하는 버그를 수정했습니다.

Snowpark 로컬 테스트 업데이트

새로운 기능

  • 다음 APIs에 대한 지원이 추가되었습니다.

    • snowflake.snowpark.functions

      • rank

      • dense_rank

      • percent_rank

      • cume_dist

      • ntile

      • datediff

      • array_agg

    • snowflake.snowpark.column.Column.within_group

  • 모의 계획에 대한 정규식 문에서 플래그 구문 분석에 대한 지원을 추가했습니다. 이는 위의 rlikeregexp 변경 사항과 동등성을 유지합니다.

버그 수정 사항

  • 윈도우 함수 LEADLAG 가 옵션 ignore_nulls 를 올바로 처리하지 못하는 버그를 수정했습니다.

  • 테이블 병합 작업을 삽입하는 동안 결과 DataFrame에 값이 채워지지 않는 버그를 수정했습니다.

개선 사항

  • 정수 인덱싱에 대한 pandas FutureWarning 을 수정합니다.

Snowpark pandas API 업데이트

새로운 기능

  • DataFrame.backfill, DataFrame.bfill, Series.backfill, Series.bfill 에 대한 지원을 추가했습니다.

  • 기본 매개 변수를 사용하여 DataFrame.compareSeries.compare 에 대한 지원을 추가했습니다.

  • Series.dt.microsecondSeries.dt.nanosecond 에 대한 지원이 추가되었습니다.

  • Index.is_uniqueIndex.has_duplicates 에 대한 지원이 추가되었습니다.

  • Index.equals 를 지원하는 기능이 추가되었습니다.

  • Index.value_counts 를 지원하는 기능이 추가되었습니다.

  • Series.dt.day_nameSeries.dt.month_name 에 대한 지원이 추가되었습니다.

  • Index에 인덱싱 지원을 추가했습니다(예: df.index[:10]).

  • DataFrame.unstackSeries.unstack 에 대한 지원이 추가되었습니다.

  • DataFrame.asfreqSeries.asfreq 에 대한 지원이 추가되었습니다.

  • Series.dt.is_month_startSeries.dt.is_month_end 에 대한 지원이 추가되었습니다.

  • Index.allIndex.any 에 대한 지원이 추가되었습니다.

  • Series.dt.is_year_startSeries.dt.is_year_end 에 대한 지원이 추가되었습니다.

  • Series.dt.is_quarter_startSeries.dt.is_quarter_end 에 대한 지원이 추가되었습니다.

  • 지연 DatetimeIndex 에 대한 지원을 추가했습니다.

  • Series.argmaxSeries.argmin 에 대한 지원이 추가되었습니다.

  • Series.dt.is_leap_year 를 지원하는 기능이 추가되었습니다.

  • DataFrame.items 를 지원하는 기능이 추가되었습니다.

  • Series.dt.floorSeries.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.fillnaResampler.bfill 에 대한 지원이 추가되었습니다.

  • Timedelta 열과 to_pandas 생성을 포함하여, Timedelta 타입에 대한 제한적인 지원을 추가했습니다.

  • Index.argmaxIndex.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_duplicatesDataFrame.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.functions

      • random

  • 모의 함수를 등록할 때 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.nlargestDataFrame.nsmallest

      • DataFrame.assign

      • DataFrame.stack

      • DataFrame.pivot

      • DataFrame.to_csv

      • DataFrame.corr

      • DataFrame.corr

      • DataFrame.equals

      • DataFrame.reindex

      • DataFrame.atDataFrame.iat

    • Series

      • Series.nlargestSeries.nsmallest

      • Series.atSeries.iat

      • Series.dt.isocalendar

      • Series.equals

      • Series.reindex

      • Series.to_csv

      • Series.case_when (조건 또는 교체가 호출 가능한 경우 제외)

      • series.plot() (데이터를 로컬 클라이언트에 구체화)

    • GroupBy

      • DataFrameGroupBy.allDataFrameGroupBy.any

      • DataFrameGroupBySeriesGroupBy 집계 firstlast

      • DataFrameGroupBy.get_group

      • SeriesGroupBy.allSeriesGroupBy.any

    • 일반

      • pd.pivot

      • read_excel (처리를 위해 로컬 pandas 사용)

      • df.plot() (데이터를 로컬 클라이언트에 구체화)

  • 기존 API를 다음과 같이 확장했습니다.

    • DataFrame.sampleSeries.sample 에서 replacefrac > 1 을 위한 지원을 추가했습니다.

    • table 의 값이 단일 코드 포인트 문자열인 경우 Series.str.translate 에 대한 부분적 지원을 추가했습니다.

    • method 매개 변수가 fillna 에서 사용될 때 limit 매개 변수에 대한 지원을 추가했습니다.

  • Index 와 그 API에 대한 설명서 페이지를 추가했습니다.

버그 수정 사항

  • 스칼라 other 가 리터럴 0인 경우 np.where 및 df.where를 사용할 때 발생하는 문제를 수정했습니다.

  • dtype=np.uint64 로 Snowpark pandas DataFrame 또는 Series 를 변환할 때 전체 자릿수 손실과 관련된 버그를 수정했습니다.

  • indexcolumnspivot_table 중에 DataFrame에 모든 열을 포함하는 경우 valuesindex 로 설정되는 버그를 수정했습니다.

개선 사항

  • Index.copy() 를 지원하는 기능이 추가되었습니다.

  • Index API dtype, values, item(), tolist(), to_series(), to_frame() 에 대한 지원을 추가했습니다.

  • pd.pivot_tableDataFrame.pivot_table 에 행이 없는 DataFrames에 대한 지원을 확장합니다.

  • DataFrame.sort_indexSeries.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 업데이트

새로운 기능

  • freqlimit 매개 변수 없이 DataFrame.pct_changeSeries.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.lstripSeries.str.rstrip 에 대한 지원을 추가했습니다.

  • DataFrameGroupby.sizeSeriesGroupby.size 에 대한 지원을 추가했습니다.

  • axis=0 을 사용하여 집계 count, sum, min, max, mean, std, varDataFrame.expandingSeries.expanding 에 대한 지원을 추가했습니다.

  • axis=0 을 사용한 집계 카운트를 위해 DataFrame.rollingSeries.rolling 에 대한 지원을 추가했습니다.

  • Series.str.match 에 대한 지원을 추가했습니다.

  • 집계 크기의 DataFrame.resampleSeries.resample 에 대한 지원을 추가했습니다.

버그 수정 사항

  • GroupBy.aggregate 열의 출력이 잘못 정렬되는 버그를 수정했습니다.

  • 서로 다른 dtypes 의 중복 열이 있는 프레임에서 DataFrame.describe 를 호출하면 오류나 잘못된 결과가 발생할 수 있는 버그를 수정했습니다.

  • 이제 window=0ValueError 대신 NotImplementedError 를 발생시키도록 DataFrame.rollingSeries.rolling 의 버그를 수정했습니다.

개선 사항

  • DataFrame.aggregateSeries.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에는 몇 가지 새로운 기능이 도입되었습니다.

새로운 기능

  • 사용자가 세션 지속 시간 동안 DataFrameSeries 오브젝트를 임시 테이블에 유지하여 후속 연산 대기 시간을 개선할 수 있는 DataFrame.cache_resultSeries.cache_result 메서드를 추가했습니다.

개선 사항

  • index 매개 변수가 없는 경우와 margins 매개 변수가 있는 경우 DataFrame.pivot_table 에 대한 지원이 추가되었습니다.

  • DataFrame.shift, Series.shift, DataFrameGroupBy.shiftSeriesGroupBy.shift 의 서명을 pandas 2.2.1과 일치하도록 업데이트했습니다. Snowpark pandas는 아직 새로 추가된 접미사 인자 또는 기간의 시퀀스 값을 지원하지 않습니다.

  • Series.str.split 에 대한 지원이 다시 추가되었습니다.

버그 수정 사항

  • 문자열 메서드의 혼합 열 관련 문제(Series.str.*)를 수정했습니다.

로컬 테스트 업데이트

새로운 기능

  • 파일 형식 CSV 및 JSON에 대한 다음 DataFrameReader 읽기 옵션 지원이 추가되었습니다.

    • PURGE

    • PATTERN

    • False 값이 포함된 INFER_SCHEMA

    • UTF8 값이 포함된 ENCODING

  • DataFrame.analytics.moving_aggDataFrame.analytics.cumulative_agg_agg 에 대한 지원이 추가되었습니다.

  • UDF 및 저장 프로시저 등록 중 if_not_exists 매개 변수에 대한 지원이 추가되었습니다.

버그 수정 사항

  • 소수점 초 부분이 올바르게 처리되지 않는 처리 시간 형식의 버그를 수정했습니다.

  • * 에서 함수 호출이 실패하는 버그를 수정했습니다.

  • mapstruct 타입 오브젝트를 생성할 수 없는 버그를 수정했습니다.

  • 함수 date_add 가 일부 숫자 유형을 처리할 수 없는 버그를 수정했습니다.

  • TimestampType 형변환 시 잘못된 데이터가 생성되던 버그를 수정했습니다.

  • 경우에 따라 DecimalType 데이터의 정밀도가 부정확하게 표시되는 버그를 수정했습니다.

  • 누락된 테이블 또는 뷰를 참조하면 IndexError 가 발생하는 버그를 수정했습니다.

  • 모의 함수 to_timestamp_ntzNone 데이터를 처리할 수 없는 버그를 수정했습니다.

  • 모의 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_permanentanonymous 옵션에 대한 적절한 오류 메시지를 UDFs 및 저장 프로시저 등록에 추가하여 해당 기능이 아직 지원되지 않는다는 점을 명확히 밝혔습니다.

  • 지원되지 않는 옵션과 값을 사용하는 파일 읽기 연산에는 이제 경고와 불분명한 오류 정보 대신 NotImplementedError 를 표시합니다.

버전 1.17.0(2024-05-21)

Snowpark 라이브러리 버전 1.17.0에는 몇 가지 새로운 기능이 도입되었습니다.

새로운 기능

  • 아래 나열된 함수를 사용하여 테이블과 뷰에 설명을 추가하는 지원이 추가되었습니다.

    • DataFrameWriter.save_as_table

    • DataFrame.create_or_replace_view

    • DataFrame.create_or_replace_temp_view

    • DataFrame.create_or_replace_dynamic_table

개선 사항

  • 스키마를 지정하지 않고 CSV 파일을 읽을 때 {"infer_schema": True} 를 설정하라는 오류 메시지를 표시하도록 개선했습니다.

로컬 테스트 업데이트

새로운 기능

  • 모의 함수 to_timestamp_ltz, to_timestamp_ntz, to_timestamp_tz, to_timestamp 에서 NumericTypeVariantType 데이터 변환에 대한 지원이 추가되었습니다.

  • 모의 함수 to_char 에서 DecimalType, BinaryType, ArrayType, MapType, TimestampType, DateTypeTimeType 데이터 변환에 대한 지원이 추가되었습니다.

  • 다음 APIs에 대한 지원이 추가되었습니다.

    • snowflake.snowpark.functions.to_varchar

    • snowflake.snowpark.DataFrame.pivot

    • snowflake.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] 가 대문자 식별자를 반환하는 버그를 수정했습니다.

  • 함수 substrsubstring 이 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, TimestampTypeVariantType 데이터 변환에 대한 지원이 추가되었습니다.

  • 다음 APIs에 대한 지원이 추가되었습니다.

    • snowflake.snowpark.functions:

      • get

      • concat

      • concat_ws

버그 수정 사항

  • NaTNaN 값이 인식되지 않는 버그를 수정했습니다.

  • 스키마를 추론할 때 이미 작은따옴표가 있는 스테이지 파일에 작은따옴표가 추가되던 버그가 수정되었습니다.

  • DataFrameReader.csv 가 구분 기호가 포함된 따옴표로 묶은 값을 처리할 수 없던 버그를 수정했습니다.

  • 산술 계산에 None 값이 있을 때 출력값이 math.nan 이 아닌 None 으로 유지되는 버그를 수정했습니다.

  • sumcovar_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.json

    • DataFrame.write.csv

    • DataFrame.write.parquet

  • DataFrameDataFrameWriter 의 액션 함수에 오픈 텔레메트리 APIs를 사용한 분산 추적이 추가되었습니다.

    • snowflake.snowpark.DataFrame:

      • collect

      • collect_nowait

      • to_pandas

      • count

      • show

    • snowflake.snowpark.DataFrameWriter:

      • save_as_table

  • snowflake.snowpark.Session.file.getsnowflake.snowpark.Session.file.get_streamsnow:// URLs에 대한 지원이 추가되었습니다.

  • 저장 프로시저 및 UDFs를 comment 로 등록할 수 있도록 지원이 추가되었습니다.

  • UDAF 클라이언트 지원이 공개 미리 보기로 제공됩니다. Snowflake의 UDAF 공개 미리 보기 발표를 기대해 주세요.

  • 동적 피벗에 대한 지원이 추가되었습니다. 이 기능은 현재 비공개 미리 보기로 제공됩니다.

개선 사항

  • 중복되는 하위 쿼리를 공통 테이블 식(CTEs)으로 변환하여 컴파일과 실행 모두에서 생성된 쿼리 성능을 개선했습니다. 이는 아직 실험적인 기능이며 기본적으로 활성화되어 있지 않습니다. 이 기능은 session.cte_optimization_enabledTrue 로 설정하여 활성화할 수 있습니다.

버그 수정 사항

  • 저장 프로시저 및 사용자 정의 함수를 등록하는 쿼리 실행에 statement_params 가 전달되지 않는 버그가 수정되었습니다.

  • 인용된 스테이지 위치에서 snowflake.snowpark.Session.file.get_stream 이 실패하던 버그를 수정했습니다.

  • utils.py 의 내부 유형 힌트가 기본 모듈을 찾을 수 없는 경우 AttributeError 가 발생할 수 있는 버그를 수정했습니다.

로컬 테스트 업데이트

새로운 기능

  • UDFs 및 저장 프로시저 등록에 대한 지원이 추가되었습니다.

  • 다음 APIs에 대한 지원이 추가되었습니다.

    • snowflake.snowpark.Session:

      • file.put

      • file.put_stream

      • file.get

      • file.get_stream

      • read.json

      • add_import

      • remove_import

      • get_imports

      • clear_imports

      • add_packages

      • add_requirements

      • clear_packages

      • remove_package

      • udf.register

      • udf.register_from_file

      • sproc.register

      • sproc.register_from_file

    • snowflake.snowpark.functions

      • current_database

      • current_session

      • date_trunc

      • object_construct

      • object_construct_keep_null

      • pow

      • sqrt

      • udf

      • sproc

  • 모의 함수 to_time 에서 StringType, TimestampTypeVariantType 데이터 변환에 대한 지원이 추가되었습니다.

버그 수정 사항

  • 상수 함수의 열에 null이 채워지는 버그를 수정했습니다.

  • null 입력을 더 잘 처리하도록 to_object, to_arrayto_binary 를 수정했습니다.

  • 타임스탬프 데이터 비교에서 2262년 이후의 연도를 처리할 수 없는 버그를 수정했습니다.

  • Session.builder.getOrCreate 가 생성된 모의 세션을 반환하는 버그를 수정했습니다.

버전 1.14.0(2024-03-20)

Snowpark 라이브러리 버전 1.14.0에는 몇 가지 새로운 기능이 도입되었습니다.

새로운 기능

  • process 메서드를 사용하여 벡터화된 UDTFs를 생성하는 기능이 추가되었습니다.

  • 데이터프레임 함수에 대한 지원이 추가되었습니다.

    • to_timestamp_ltz

    • to_timestamp_ntz

    • to_timestamp_tz

    • locate

  • ASOF JOIN 타입에 대한 지원이 추가되었습니다.

  • 다음 로컬 테스트 APIs에 대한 지원이 추가되었습니다.

    • snowflake.snowpark.functions:

      • to_double

      • to_timestamp

      • to_timestamp_ltz

      • to_timestamp_ntz

      • to_timestamp_tz

      • greatest

      • least

      • convert_timezone

      • dateadd

      • date_part

    • snowflake.snowpark.Session:

      • get_current_account

      • get_current_warehouse

      • get_current_role

      • use_schema

      • use_warehouse

      • use_database

      • use_role

개선 사항

  • 로컬 테스트에 원격 측정 기능이 추가되었습니다.

  • 존재하지 않는 경로를 읽거나 경로 아래에 파일이 없을 때 DataFrameReader 의 오류 메시지에서 FileNotFound 오류가 표시되도록 개선했습니다.

버그 수정 사항

  • SnowflakePlanBuilder 에서 이름이 $ 로 시작하고 그 뒤에 숫자가 오는 열을 save_as_table 가 올바르게 필터링하지 못하는 버그가 수정되었습니다.

  • 가져오기 및 패키지를 확인할 때 명령 매개 변수가 효과가 없는 버그를 수정했습니다.

  • 로컬 테스트의 버그가 수정되었습니다.

    • LEFT ANTI 및 LEFT SEMI 조인은 null 값을 가진 삭제 행을 조인합니다.

    • DataFrameReader.csv 는 선택적 매개 변수 field_optionally_enclosed_by 를 지정하면 데이터를 잘못 구문 분석합니다.

    • Column.regexppatternColumn 인 경우에만 첫 번째 항목만 고려합니다.

    • 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_namequery_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_integrationssecrets 를 추가했습니다.

  • 추가 태그를 쉼표로 구분된 값으로 추가하여 현재 쿼리 태그에 추가할 수 있는 새로운 메서드 Session.append_query_tag 를 추가했습니다.

  • JSON으로 인코딩된 사전 쿼리 태그를 업데이트할 수 있는 새 메서드 Session.update_query_tag 를 추가했습니다.

  • SessionBuilder.getOrCreate 는 이제 토큰 만료가 감지되면 반환하는 싱글톤을 바꾸려고 시도합니다.

  • snowflake.snowpark.functions 에 다음 함수를 추가했습니다.

    • array_except

    • create_map

    • sign / signum

  • DataFrame.analytics 에 다음 함수를 추가했습니다.

    • 여러 윈도우 크기로 합계 및 평균과 같은 이동 집계를 활성화하기 위해 DataFrame.analyticsmoving_agg 함수를 추가했습니다.

    • 여러 윈도우 크기로 합계 및 평균과 같은 이동 집계를 활성화하기 위해 DataFrame.analyticscummulative_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.
    
    Copy
  • 부울 유형에 대해 스키마에서 null을 허용하지 않는 필드를 준수하지 않는 Session.create_dataframe 의 버그를 수정했습니다. 이 수정 사항은 사용자에게 임시 테이블을 생성할 권한이 있는 경우에만 적용됩니다.

  • session.sql 에서 select 문이 아닌 문이 limit() 와 함께 사용될 때 SQL 쿼리를 삭제하는 SQL 단순화 기능의 버그를 수정했습니다.

  • 세션 매개 변수 ERROR_ON_NONDETERMINISTIC_UPDATE 가 true인 경우 예외를 발생시키는 버그를 수정했습니다.