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

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

  • 동작 변경 사항

  • 새로운 기능

  • 고객이 직면한 버그 수정

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

버전 1.0.0(2022-11-01)

새로운 기능

  • GENERATOR 테이블 함수를 사용하여 새 DataFrame을 생성하기 위해 Session.generator() 를 추가했습니다.

  • 보안 UDF 또는 UDTF를 생성하는 함수에 SECURE 매개 변수를 추가했습니다.

버전 0.12.0(2022-10-14)

새로운 기능

  • 비동기 작업을 위한 새 API를 추가했습니다.

    • 쿼리 ID에서 AsyncJob 인스턴스를 만드는 Session.create_async_job().

    • AsyncJob.result() 는 이제 result_type 인자를 받아 결과를 다른 형식으로 반환합니다.

    • AsyncJob.to_df() 는 이 비동기 작업의 결과에서 빌드된 DataFrame 을 반환합니다.

    • AsyncJob.query() 는 실행된 쿼리의 SQL 텍스트를 반환합니다.

  • DataFrame.agg()RelationalGroupedDataFrame.agg() 는 이제 가변 길이 인자를 받습니다.

  • 겹치는 열의 이름을 편리하게 바꿀 수 있도록 매개 변수 lsuffixrsuffixDataFrame.join()DataFrame.cross_join() 에 추가했습니다.

  • DataFrame.cache_result() 를 호출한 후 임시 테이블을 삭제할 수 있도록 Table.drop_table() 을 추가했습니다. Table 은 컨텍스트 관리자이기도 하므로, 사용 후 캐시 임시 테이블을 삭제하는 문과 함께 이를 사용할 수 있습니다.

  • Session.use_secondary_roles() 을 추가했습니다.

  • (@chasleslr이 제공한) first_value()last_value() 함수를 추가했습니다.

  • DataFrame.join() 에서 using_columns 의 별칭으로 on을 추가하고 join_type 의 별칭으로 how를 추가했습니다.

버그 수정 사항

  • 스키마 이름에 특수 문자가 있을 때 오류가 발생하는 Session.create_dataframe() 의 버그를 수정했습니다.

  • Session.read.option() 에 설정된 옵션이 DataFrame.copy_into_table() 에 기본값으로 전달되지 않는 버그를 수정했습니다.

  • 복사 옵션이 값에 작은따옴표가 있을 때 DataFrame.copy_into_table() 에서 오류가 발생하는 버그를 수정했습니다.

버전 0.11.0(2022-09-28)

동작 변경 사항

  • 이제 Session.add_packages() 는 Snowflake Anaconda 채널에서 패키지 버전을 찾을 수 없을 때 ValueError 를 발생시킵니다. 이전에는 Session.add_packages() 가 성공했고 UDF 또는 저장 프로시저 등록 단계에서 이후에 SnowparkSQLException 예외가 발생했습니다.

새로운 기능

  • 스테이지 파일을 스트림으로 다운로드하는 기능을 지원하려고 FileOperation.get_stream() 메서드를 추가했습니다.

  • Int 인자를 허용하도록 functions.ntiles() 에 지원 기능을 추가했습니다.

  • 다음 별칭을 추가했습니다.

    • functions.call_function() (functions.call_builtin()).

    • functions.function() (functions.builtin()).

    • DataFrame.order_by() (DataFrame.sort()).

    • DataFrame.orderBy() (DataFrame.sort()).

  • DataFrame 클래스 대신 더 정확한 Table 클래스를 반환하도록 DataFrame.cache_result() 를 개선했습니다.

  • StoredProcedure 를 호출할 때 session 을 첫 번째 인자로 허용하는 지원 기능을 추가했습니다.

개선 사항

  • 해당되는 경우 쿼리를 평면화하여 중첩 쿼리 생성을 개선했습니다. 이렇게 개선된 기능은 Session.sql_simplifier_enabled = True 를 설정하여 사용할 수 있습니다. DataFrame.select(), DataFrame.with_column(), DataFrame.drop() 및 기타 select 관련 API는 이제 SQL이 더욱 평면화되었습니다. DataFrame.union(), DataFrame.union_all(), DataFrame.except_(), DataFrame.intersect(), DataFrame.union_by_name() 은 여러 세트 연산자가 연결될 때 생성되는 SQL을 평면화했습니다.

  • 비동기 작업 API에 대한 형식 주석을 개선했습니다.

버그 수정 사항

  • Table.update(), Table.delete(), Table.merge() 가 존재하지 않는 임시 테이블을 참조하려고 하는 버그를 수정했습니다.

버전 0.10.0(2022-09-16)

새로운 기능

  • 비동기 쿼리로 Snowpark 데이터 프레임을 평가하는 실험용 API를 추가했습니다.

    • 비동기 평가를 허용하도록 (쿼리를 실행하는) Snowpark 데이터 프레임에서 다음 작업 API에 키워드 인자 블록을 추가했습니다.

      • DataFrame.collect(), DataFrame.to_local_iterator(), DataFrame.to_pandas(), DataFrame.to_pandas_batches(), DataFrame.count(), DataFrame.first(), DataFrameWriter.save_as_table(), DataFrameWriter.copy_into_location(), Table.delete(), Table.update(), Table.merge().

    • 비동기 평가를 허용하는 DataFrame.collect_nowait() 메서드를 추가했습니다.

    • 비동기적으로 실행된 쿼리에서 결과를 검색하고 상태를 확인하는 AsyncJob 클래스를 추가했습니다.

  • Session.write_pandas() 에서 table_type 에 대한 지원을 추가했습니다. 이제 table_type 옵션에서 temporary, temp, transient 항목을 선택할 수 있습니다.

  • Snowpark에서 Python 구조화 데이터(list, tuple, dict)를 리터럴 값으로 사용하기 위한 지원을 추가했습니다.

  • 저장 프로시저를 호출자 또는 소유자로 등록할 수 있도록 execute_as 키워드 인자를 functions.sproc()session.sproc.register() 에 추가했습니다.

  • Snowflake의 스테이지에서 파일을 읽을 때 미리 구성된 파일 형식 지정을 위한 지원을 추가했습니다.

개선 사항

  • Snowpark 세션의 세부 정보 표시를 위한 지원을 추가했습니다.

버그 수정 사항

  • 테이블 이름이 정규화되고 테이블이 이미 있는 경우 DataFrame.copy_into_table()DataFrameWriter.save_as_table() 이 새 테이블을 실수로 생성한 버그를 수정했습니다.

사용 중단

  • Session.write_pandas() 에서 사용되지 않는 키워드 인자 create_temp_table.

  • Python 목록 또는 튜플에 래핑된 인자를 사용하여 UDF를 호출하는 기능이 더 이상 사용되지 않습니다. 목록이나 튜플 없이 가변 길이 인자를 사용할 수 있습니다.

종속성 업데이트

  • snowflake-connector-python 을 2.7.12로 업데이트했습니다.

버전 0.9.0(2022-08-30)

새로운 기능

  • UDF를 등록할 때 생성된 스크립트에서 소스 코드를 주석으로 표시하기 위한 지원을 추가했습니다. 이 기능은 기본적으로 켜져 있습니다. 이 기능을 끄려면 register() 또는 @udf() 를 호출할 때 새 키워드 인자 source_code_display 를 False로 전달합니다.

  • 이제 열에 대해 table_function.TableFunctionCall 형식의 매개 변수를 사용하는 DataFrame.select(), DataFrame.with_column(), DataFrame.with_columns() 에서 테이블 함수 호출을 위한 지원을 추가했습니다.

  • Snowflake 테이블의 내용을 Pandas DataFrame의 내용으로 덮어쓸 수 있도록 키워드 인자 overwritesession.write_pandas() 에 추가했습니다.

  • 추가 모드에서 테이블에 데이터를 삽입할 때 일치 규칙을 지정할 수 있도록 키워드 인자 column_orderdf.write.save_as_table() 에 추가했습니다.

  • 파일 스트림을 통해 로컬 파일을 스테이지에 업로드하는 FileOperation.put_stream() 메서드를 추가했습니다.

  • 테이블 함수 조인의 출력에서 가져온 열 이름에 별칭을 지정할 수 있도록 TableFunctionCall.alias()TableFunctionCall.as_() 메서드를 추가했습니다.

  • 현재 활성 Snowpark 세션을 가져올 수 있도록 snowflake.snowpark.context 모듈에 get_active_session() 함수를 추가했습니다.

개선 사항

입력 max_min_ 의 유형을 추론하고 각각 IntegerType 또는 FloatType 으로 제한을 캐스팅하도록 function.uniform() 함수를 개선했습니다.

버그 수정 사항

  • statement_params 가 함수에 전달되지 않을 때 일괄 삽입에서 오류가 발생하지 않는 버그를 수정했습니다.

  • dicts 와 주어진 스키마로 session.create_dataframe() 을 호출할 때 열 이름을 인용해야 하는 버그를 수정했습니다.

  • 테이블이 이미 존재하고 df.write.save_as_table() 을 호출할 때 추가 모드에 있는 경우 테이블 생성을 건너뛰어야 하는 버그를 수정했습니다.

  • UDF 등록 시 밑줄이 있는 서드 파티 패키지를 추가할 수 없는 버그를 수정했습니다.

버전 0.8.0(2022-07-22)

새로운 기능

  • 문 수준 매개 변수를 지정할 수 있도록 다음 메서드에 키워드 전용 인수 statement_params 를 추가했습니다.

    • snowflake.snowpark.Dateframe 클래스의 collect, to_local_iterator, to_pandas, to_pandas_batches, count, copy_into_table, show, create_or_replace_view, create_or_replace_temp_view, first, cache_result, random_split.

    • 클래스 snowflake.snowpark.Tableupdate, delete, merge.

    • 클래스 snowflake.snowpark.DataFrameWritersave_as_table, copy_into_location.

    • snowflake.snowpark.DataFrameStatFunctions 클래스의 approx_quantile, statement_params, cov, crosstab.

    • 클래스 snowflake.snowpark.udf.UDFRegistrationregister, register_from_file.

    • 클래스 snowflake.snowpark.udtf.UDTFRegistrationregister, register_from_file.

    • 클래스 snowflake.snowpark.stored_procedure.StoredProcedureRegistrationregister, register_from_file.

    • snowflake.snowpark.functionsudf, udtf, sproc.

  • session.call() 에 대한 입력 인수로서 Column 에 대한 지원을 추가했습니다.

  • df.write.save_as_table() 에서 table_type 에 대한 지원을 추가했습니다. 이제 table_type 옵션에서 temporary, temp, transient 항목을 선택할 수 있습니다.

개선 사항

  • session.use_* 메서드에서 오브젝트 이름 유효성 검사를 추가했습니다.

  • 특수 문자가 포함된 경우 이스케이프하도록 SQL의 query 태그를 업데이트했습니다.

  • 누락된 패키지를 추가할 때 Anaconda 조건이 승인되었는지 확인하는 검사를 추가했습니다.

버그 수정 사항

  • session.create_dataframe() 의 문자열 열의 제한된 길이를 수정했습니다.

  • 입력 데이터가 목록일 때 session.create_dataframe() 이 0과 FalseNone 으로 잘못 변환하는 버그를 수정했습니다.

  • 대규모 로컬 데이터 세트를 사용하여 session.create_dataframe() 을 호출하면 임시 테이블이 두 번 생성되는 버그를 수정했습니다.

  • function.trim() 의 정의를 SQL 함수 정의에 맞춰 조정했습니다.

  • Python 시스템 정의(기본 제공 함수) sum vs. Snowpark function.sum() 을 사용할 때 snowpark-python이 중단되는 문제를 수정했습니다.

버전 0.7.0(2022-05-25)

새로운 기능

  • 사용자 정의 테이블 함수(UDTF)에 대한 지원을 추가했습니다.

    • 함수 snowflake.snowpark.functions.udtf() 를 사용하여 UDTF를 등록하거나 이 함수를 UDTF를 등록하는 데코레이터로 사용합니다.

    • 또한 Session.udtf.register() 를 사용하여 UDTF 를 등록할 수도 있습니다.

    • Session.udtf.register_from_file() 을 사용하여 Python 파일에서 UDTF를 등록합니다.

  • Snowflake 내장 테이블 함수와 UDTF를 모두 포함하여 테이블 함수를 쿼리하도록 API를 업데이트했습니다.

    • 함수 snowflake.snowpark.functions.table_function() 을 사용하여 테이블 함수를 나타내는 호출 가능한 오브젝트를 만들고 이 오브젝트를 사용해 쿼리에서 테이블 함수를 호출합니다.

    • 또는 함수 snowflake.snowpark.functions.call_table_function() 을 사용하여 테이블 함수를 호출합니다.

    • 테이블 함수를 측면 조인할 때 partition by와 order by를 지정하는 over 절을 위한 지원을 추가했습니다.

    • TableFunctionCall 인스턴스를 허용하도록 Session.table_function()DataFrame.join_table_function() 을 업데이트했습니다.

새로운 변경 사항

  • functions.udf()functions.sproc() 를 사용하여 함수를 만들 때 이제 imports 또는 packages 인자에 대해 빈 목록을 지정하여 이 UDF 또는 저장 프로시저에 사용되는 가져오기 또는 패키지가 없음을 나타낼 수 있습니다. 이전에는 빈 목록을 지정해 함수가 세션 수준 가져오기 또는 패키지를 사용하도록 했습니다.

  • types.py 에서 데이터 타입의 __repr__ 구현을 개선했습니다. 사용하지 않는 type_name 속성이 제거되었습니다.

  • SQL 오류에 대해 Snowpark에 특정한 예외 클래스를 추가했습니다. 이 클래스가 Python 커넥터의 이전 ProgrammingError 를 대체합니다.

개선 사항

  • 스레드별로 처음 호출될 때 UDF 또는 UDTF에 잠금을 추가했습니다.

  • UDF 생성 중 발생한 피클링(pickling) 오류에 대한 오류 메시지를 개선했습니다.

  • 실패한 쿼리를 기록할 때 쿼리 ID를 포함했습니다.

버그 수정 사항

  • DataFrame.to_pandas() 를 호출할 때 정수가 아닌 데이터(예: 타임스탬프)가 때때로 정수로 변환되는 버그를 수정했습니다.

  • Parquet 파일의 열에 공백이 포함되어 있을 때 DataFrameReader.parquet() 가 parquet 파일을 읽지 못하는 버그를 수정했습니다.

  • 유추한 스키마가 있는 파일을 읽어 데이터 프레임 생성 시 DataFrame.copy_into_table() 이 실패하는 버그를 수정했습니다.

사용 중단

  • Session.flatten()DataFrame.flatten().

종속성 업데이트

  • 2.0.0 이하의 cloudpickle 버전을 제한했습니다.

버전 0.6.0(2022-04-27)

새로운 기능

  • Python UDF Batch API를 통해 벡터화된 UDF에 대한 지원을 추가했습니다. Python UDF 배치 API를 사용하면 입력 행 배치를 Pandas DataFrames 로 수신하고 결과 배치를 Pandas 배열 또는 Series 로 반환하는 Python 함수를 정의할 수 있습니다. 이는 Snowpark에서 UDF의 성능을 향상할 수 있습니다.

  • DataFrame의 스키마가 스테이지에서 Parquet, Avro 또는 ORC 파일을 읽어 생성될 때 기본적으로 이 스키마를 유추하기 위한 지원을 추가했습니다.

  • current_session(), current_statement(), current_user(), current_version(), current_warehouse(), date_from_parts(), date_trunc(), dayname(), dayofmonth(), dayofweek(), dayofyear(), grouping(), grouping_id(), hour(), last_day(), minute(), next_day(), previous_day(), second(), month(), monthname(), quarter(), year(), current_database(), current_role(), current_schema(), current_schemas(), current_region(), current_avaliable_roles(), add_months(), any_value(), bitnot(), bitshiftleft(), bitshiftright(), convert_timezone(), uniform(), strtok_to_array(), sysdate(), time_from_parts(), timestamp_from_parts(), timestamp_ltz_from_parts(), timestamp_ntz_from_parts(), timestamp_tz_from_parts(), weekofyear(), percentile_cont() 함수를 snowflake.snowflake.functions에 추가했습니다.

개선 사항

  • Session.create_dataframe() 메서드를 사용하여 특정 스키마로 빈 DataFrame을 만들기 위한 지원을 추가했습니다.

  • 데이터 프레임을 평가할 때 여러 로그(예: 실행된 쿼리)에 대해 로깅 수준을 INFO 에서 DEBUG 로 변경했습니다.

  • 피클 오류로 인해 UDF를 만들지 못할 때의 오류 메시지를 개선했습니다.

  • 0.4.0에서 지원 중단된 API인 DataFrame.groupByGroupingSets(), DataFrame.naturalJoin(), DataFrame.joinTableFunction, DataFrame.withColumns(), Session.getImports(), Session.addImport(), Session.removeImport(), Session.clearImports(), Session.getSessionStage(), Session.getDefaultDatabase(), Session.getDefaultSchema(), Session.getCurrentDatabase(), Session.getCurrentSchema(), Session.getFullyQualifiedCurrentSchema()를 제거했습니다.

  • 4.1.0 이상의 버전을 사용해 typing-extension을 새 종속성으로 추가했습니다.

버그 수정 사항

  • Session.create_dataframe() 메서드에서 pandas 강한 종속성을 제거했습니다.

버전 0.5.0(2022-03-22)

새로운 기능

  • 저장 프로시저 API를 추가했습니다.

  • 저장 프로시저를 등록할 수 있도록 Session.sproc 속성과 sproc()을 snowpark.snowpark.functions에 추가했습니다.

  • 이름으로 저장 프로시저를 호출하기 위해 Session.call을 추가했습니다.

  • Python 원본 파일 또는 zip 파일에서 UDF를 직접 등록할 수 있도록 UDFRegistration.register_from_file()을 추가했습니다.

  • UDF를 설명하는 UDFRegistration.describe()를 추가했습니다.

  • 데이터 프레임을 무작위로 분할하는 방법을 제공하는 DataFrame.random_split()을 추가했습니다.

  • md5(), sha1(), sha2(), ascii(), initcap(), length(), lower(), lpad(), ltrim(), rpad(), rtrim(), repeat(), soundex(), regexp_count(), replace(), charindex(), collate(), collation(), insert(), left(), right(), endswith() 함수를 snowflake.snowpark.functions에 추가했습니다.

  • call_udf() 함수는 이제 리터럴 값도 허용합니다.

  • array_agg()에 고유 키워드를 제공했습니다.

버그 수정 사항

  • Column.cast(IntegerType())가 사용된 경우 DataFrame.to_pandas()에 문자열 열이 생기는 문제를 수정했습니다.

  • 둘 이상의 문자열 열이 있을 때 DataFrame.describe()에서 발생하는 버그를 수정했습니다.

버전 0.4.0(2022-02-15)

새로운 기능

  • 이제는 UDF를 정의할 때 사용할 Anaconda 패키지를 지정할 수 있습니다.

  • Session 클래스에 add_packages(), get_packages(), clear_packages(), remove_package()를 추가했습니다.

  • 요구 사항 파일을 사용하여 이 세션에서 사용할 패키지를 지정할 수 있도록 add_requirements()를 Session에 추가했습니다.

  • UDF를 만들 때 UDF 수준 Anaconda 패키지 종속성을 나타내기 위해 snowflake.snowpark.functions.udf() 함수와 UserDefinedFunction.register() 메서드에 매개 변수 packages를 추가했습니다.

  • UDF 수준 코드 가져오기를 지정하기 위해 snowflake.snowpark.functions.udf()와 UserDefinedFunction.register()에 매개 변수 가져오기를 추가했습니다.

  • 여러 세션이 있는 경우 UDF를 만드는 데 사용할 세션을 지정할 수 있도록 함수 udf()와 UserDefinedFunction.register()에 매개 변수 세션을 추가했습니다.

  • UDF를 정의할 때 Geography 및 Variant 데이터에 대한 타입 힌트로 사용할 타입 Geography와 Variant를 snowflake.snowpark.types에 추가했습니다.

  • Geography geoJSON 데이터에 대한 지원을 추가했습니다.

  • 테이블 작업을 위한 DataFrame의 하위 클래스 Table을 추가했습니다.

  • 메서드 update와 delete는 Snowflake에서 테이블의 행을 업데이트하고 삭제하는 역할을 합니다.

  • 메서드 merge는 DataFrame의 데이터를 Table로 병합합니다.

  • 테이블에서는 작동하지만 뷰와 하위 쿼리에서는 작동하지 않는 추가 매개 변수 seed로 메서드 DataFrame.sample()을 재정의했습니다.

  • Snowflake 데이터베이스에서 반환된 결과 세트가 너무 클 때 반복기에서 결과를 가져올 수 있도록 DataFrame.to_local_iterator()와 DataFrame.to_pandas_batches()를 추가했습니다.

  • 임시 테이블의 DataFrame 에 대해 수행된 작업을 캐시하는 DataFrame.cache_result()를 추가했습니다. 원본 DataFrame 에 대한 후속 작업은 캐시된 결과 DataFrame 에 아무런 영향도 주지 않습니다.

  • DataFrame 을 평가하려고 실행될 SQL 쿼리를 가져오는 속성 DataFrame.queries를 추가했습니다.

  • 세션에서 생성된 DataFrames 를 평가하기 위한 모든 SQL 쿼리를 포함하여, 세션에서 실행된 SQL 쿼리를 추적하는 컨텍스트 관리자로서 Session.query_history()를 추가했습니다. 쿼리 ID와 쿼리 텍스트가 모두 기록됩니다.

  • 이제 기존에 설정된 snowflake.connector.SnowflakeConnection에서 Session 인스턴스를 만들 수 있습니다. Session.builder.configs()에서 매개 변수 연결을 사용합니다.

  • 세션이 생성된 후 데이터베이스/스키마/웨어하우스/역할을 전환하기 위해 use_database(), use_schema(), use_warehouse(), use_role()을 Session 클래스에 추가했습니다.

  • DataFrame을 스테이지 파일로 언로드하는 DataFrameWriter.copy_into_table()을 추가했습니다.

  • DataFrame.unpivot()을 추가했습니다.

  • 일부 집계 함수로 열을 기준으로 행을 정렬하는 Column.within_group()을 추가했습니다.

  • listagg(), mode(), div0(), acos(), asin(), atan(), atan2(), cos(), cosh(), sin(), sinh(), tan(), tanh(), degrees(), radians(), round(), trunc(), factorial() 함수를 snowflake.snowpark.functions에 추가했습니다.

  • lead() 및 lag() 함수에 선택적 인자 ignore_nulls를 추가했습니다.

  • 함수 when() 및 iff()의 조건 매개 변수는 이제 SQL 식을 허용합니다.

개선 사항

  • 더욱 Python다운 스네이크 케이스 이름 지정 스타일을 사용하도록 모든 함수 및 메서드 이름이 바뀌었습니다. 편의상, 일부 카멜 케이스 이름은 스네이크 케이스 API의 별칭으로 유지됩니다. 스네이크 케이스 API를 사용하는 것이 좋습니다.

  • Session 클래스에서 이러한 메서드를 사용 중단하고 그에 상응하는 스네이크 케이스 getImports(), addImports(), removeImport(), clearImports(), getSessionStage(), getDefaultSchema(), getDefaultSchema(), getCurrentDatabase(), getFullyQualifiedCurrentSchema()로 바꾸었습니다.

  • 클래스 DataFrame에서 이러한 메서드를 사용 중단하고 그에 상응하는 스네이크 케이스 groupingByGroupingSets(), naturalJoin(), withColumns(), joinTableFunction()으로 바꾸었습니다.

  • 속성 DataFrame.columns는 이제 DataFrame.schema.names 및 Snowflake 데이터베이스 식별자 요구 사항과 일치합니다.

  • Column.__bool__()은 이제 TypeError를 발생시킵니다. 이에 따라 Column 오브젝트에서 논리 연산자 and, or, not을 사용할 수 없게 됩니다. 예를 들어 col(《a》) > 1 and col(《b》) > 2는 TypeError를 발생시킵니다. 대신 (col(《a》) > 1) & (col(《b》) > 2)를 사용하십시오.

  • PutResult 와 GetResult 를 하위 클래스 NamedTuple 로 변경했습니다.

  • 로컬 경로 또는 스테이지 위치에 공백이나 기타 특수 문자가 있을 때 오류가 발생하는 버그를 수정했습니다.

  • 예외가 발생하는 대신 숫자가 아닌 열과 문자열이 아닌 열이 무시되도록 DataFrame.describe()를 변경했습니다.

종속성 업데이트

  • Snowflake-connector-python을 2.7.4로 업데이트했습니다.

버전 0.3.0(2022-01-09)

새로운 기능

  • Column.in_() 별칭을 사용하여 Column.isin()을 추가했습니다.

  • cast()의 특수 버전인 Column.try_cast()를 추가했습니다. 문자열 식을 다른 타입으로 캐스팅하려고 시도하며 캐스팅할 수 없을 경우에는 null을 반환합니다.

  • 문자열 열을 처리하기 위해 Column.startswith() 및 Column.substr()을 추가했습니다.

  • Column.cast()는 이제 DataType 인스턴스 외에 캐스트 유형을 나타내는 str 값도 허용합니다.

  • DataFrame의 통계를 요약하는 DataFrame.describe()를 추가했습니다.

  • DataFrame의 쿼리 계획을 인쇄하는 DataFrame.explain()을 추가했습니다.

  • DataFrame.filter() 및 DataFrame.select_expr()은 이제 SQL 식을 허용합니다.

  • 선택적으로 임시 테이블을 생성할 수 있도록 DataFrame.saveAsTable() 및 Session.write_pandas() 메서드에 create_temp_table이라는 새로운 부울 매개 변수를 추가했습니다.

  • DataFrame.except_()에 DataFrame.minus() 및 DataFrame.subtract()를 별칭으로 추가했습니다.

  • regexp_replace(), concat(), concat_ws(), to_char(), current_timestamp(), current_date(), current_time(), months_between(), cast(), try_cast(), greatest(), least(), hash()를 snowflake.snowpark.functions 모듈에 추가했습니다.

버그 수정 사항

  • Pandas DataFrame의 열 이름에 공백이 있을 때 Session.createDataFrame(pandas_df) 및 Session.write_pandas(pandas_df)에서 예외가 발생하는 문제를 수정했습니다.

  • DataFrame.copy_into_table()이 때때로 오류 수준 로그 항목을 잘못 인쇄하는 문제를 수정했습니다.

  • 설명서에서 일부 DataFrame API가 누락된 API 설명서 문제를 수정했습니다.

종속성 업데이트

  • snow-connector-python을 2.7.2로 업데이트하여 pyarrow 종속성을 6.0.x로 업그레이드했습니다. 자세한 내용은 Python 커넥터 2.7.2 릴리스 정보를 참조하십시오.

버전 0.2.0(2021-12-02)

새로운 기능

  • Pandas DataFrame에서 DataFrame을 만드는 createDataFrame() 메서드를 추가했습니다.

  • Snowflake의 테이블에 Pandas DataFrame을 쓰고 Snowpark DataFrame 오브젝트를 다시 가져오는 write_pandas() 메서드를 추가했습니다.

  • 윈도우 함수를 호출하기 위한 새 클래스와 메서드를 추가했습니다.

  • 윈도우 파티션 내의 다른 값과 관련된 값의 누적 분포를 찾는 cume_dist()와 윈도우 파티션 내의 각 행의 고유 행 번호를 반환하는 row_number()라는 새로운 함수를 추가했습니다.

  • DataFrameStatFunctions 클래스의 DataFrames에 대한 통계를 계산하는 함수를 추가했습니다.

  • DataFrameNaFunctions 클래스의 DataFrame에서 누락된 값을 처리하는 함수를 추가했습니다.

  • 새 메서드 rollup(), cube(), pivot()을 DataFrame 클래스에 추가했습니다.

  • SQL GROUP BY GROUPING SETS를 수행하기 위해 DataFrame groupByGroupingSets 메서드와 함께 사용할 수 있는 GroupingSets 클래스를 추가했습니다.

  • 스테이지에 파일을 업로드하고 스테이지에서 파일을 다운로드할 때 사용할 수 있는 새로운 FileOperation(세션) 클래스를 추가했습니다.

  • 스테이지의 파일에서 테이블로 데이터를 로딩하는 copy_into_table() 메서드를 추가했습니다.

  • CASE 식에서 함수 when 및 otherwise는 이제 Column 오브젝트 외에 Python 타입도 허용합니다.

  • UDF를 등록할 때 이제는 선택적으로 replace 매개 변수를 True로 설정하여 같은 이름을 가진 기존 UDF를 덮어쓸 수 있습니다.

개선 사항

  • UDF는 이제 압축된 후에 서버에 업로드됩니다. 그러면 UDF가 약 10배 정도 작아지므로, 큰 ML 모델 파일을 사용할 때 도움이 될 수 있습니다.

  • UDF의 크기가 8,196바이트 미만일 때는 UDF가 스테이지에 업로드되는 대신 인라인 코드로 업로드됩니다.

버그 수정 사항

  • df.select(when(col(《a》) == 1, 4).otherwise(col(《a》))), [Row(4), Row(2), Row(3)] 문에서 예외가 발생하는 문제를 수정했습니다.

  • DataFrame이 큰 로컬 데이터에서 생성될 때 df.toPandas()에서 예외가 발생하는 문제를 수정했습니다.