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()
는 이제 가변 길이 인자를 받습니다.겹치는 열의 이름을 편리하게 바꿀 수 있도록 매개 변수
lsuffix
와rsuffix
를DataFrame.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의 내용으로 덮어쓸 수 있도록 키워드 인자
overwrite
를session.write_pandas()
에 추가했습니다.추가 모드에서 테이블에 데이터를 삽입할 때 일치 규칙을 지정할 수 있도록 키워드 인자
column_order
를df.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.Table
의update
,delete
,merge
.클래스
snowflake.snowpark.DataFrameWriter
의save_as_table
,copy_into_location
.snowflake.snowpark.DataFrameStatFunctions
클래스의approx_quantile
,statement_params
,cov
,crosstab
.클래스
snowflake.snowpark.udf.UDFRegistration
의register
,register_from_file
.클래스
snowflake.snowpark.udtf.UDTFRegistration
의register
,register_from_file
.클래스
snowflake.snowpark.stored_procedure.StoredProcedureRegistration
의register
,register_from_file
.snowflake.snowpark.functions
의udf
,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과False
를None
으로 잘못 변환하는 버그를 수정했습니다.대규모 로컬 데이터 세트를 사용하여
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()에서 예외가 발생하는 문제를 수정했습니다.