Snowpark Connect for Spark 에서 지원되는 PySpark APIs

이 항목에 설명된 대로 Snowpark Connect for Spark 는 PySpark APIs를 지원합니다.

Snowpark Connect for Spark 는 PySpark 3.5.3 Spark Connect API와의 호환성을 제공하여 Snowflake에서 Spark 워크로드를 실행할 수 있도록 지원합니다. Snowpark Connect for Spark 호환성은 Pyspark 3.5.3 Spark Connect API를 사용하는 Spark 애플리케이션을 실행할 때의 실행 동작으로 정의됩니다. 이 가이드에서는 지원되는 APIs 및 호환성 수준에 대해 자세히 설명합니다.

호환성 수준 정의

APIs의 완전한 호환성

완전한 호환성을 갖춘 APIs는 네이티브 PySpark와 동일하게 동작합니다. 이러한 APIs는 결과가 정확히 일치할 것이라는 확신을 가지고 사용할 수 있습니다.

높은 호환성 APIs

호환성이 높은 APIs는 정상적으로 작동하지만 다음과 같이 약간의 차이가 있을 수 있습니다.

  • 오류 메시지 형식이 다를 수 있습니다.

  • 출력 표시 형식이 다를 수 있습니다(예: 소수점 전체 자릿수, 열 이름 대소문자).

  • 예외적인 상황에서 결과가 약간 다를 수 있습니다.

부분적 호환성 APIs

부분적 호환성이 있는 APIs는 정상적으로 작동하지만 다음과 같이 중요한 제한 사항이 있습니다.

  • 일부 기능만 사용할 수 있습니다.

  • 특정 시나리오에서 동작이 PySpark와 다를 수 있습니다.

  • 추가 구성이 필요할 수 있습니다.

  • 성능 특성이 다를 수 있습니다.

지원되지 않는 APIs

현재 구현되지 않았거나 Snowflake에서 지원할 수 없는 APIs입니다.

DataFrame APIs

핵심 DataFrame API 적용 범위입니다.

APIs의 완전한 호환성

  • cache

  • coalesce

  • collect

  • count

  • crossJoin

  • dropDuplicates

  • drop_duplicates

  • dropna

  • fillna

  • first

  • head

  • isEmpty

  • join

  • limit

  • melt

  • offset

  • persist

  • repartitionByRange

  • replace

  • select

  • show

  • tail

  • take

  • toDF

  • toLocalIterator

  • toPandas

  • unionAll

  • unpersist

  • unpivot

  • where

  • withColumnsRenamed

  • toLocalIterator

  • toPandas

  • unionAll

  • unpersist

  • unpivot

  • where

  • withColumnsRenamed

높은 호환성 APIs

  • agg

  • colRegex

  • corr

  • cov

  • crosstab

  • cube

  • describe

  • distinct

  • drop

  • exceptAll

  • groupBy

  • groupby

  • intersect

  • intersectAll

  • isLocal

  • mapInPandas

  • orderBy

  • rollup

  • sort

  • union

  • unionByName

  • withColumn

참고

  • orderBy / sort: 체인의 마지막 DataFrame에서 추론된 열 순서입니다.

  • union / unionByName: 유형 확대 동작은 약간 다를 수 있습니다.

  • describe: 통계 출력 형식은 다를 수 있습니다.

부분적 호환성 APIs

  • alias

  • approxQuantile

  • createGlobalTempView

  • createOrReplaceGlobalTempView

  • createOrReplaceTempView

  • createTempView

  • explain

  • filter

  • freqItems

  • hint

  • inputFiles

  • printSchema

  • randomSplit

  • repartition

  • sameSemantics

  • sample

  • sampleBy

  • selectExpr

  • semanticHash

  • sortWithinPartitions

  • subtract

  • summary

  • transform

  • withColumns

  • withMetadata

참고

  • explain: 쿼리 계획 형식은 Spark와 다릅니다.

  • repartition: 파티션 수는 정확하지 않을 수 있습니다.

  • sample: 무작위 샘플링 구현은 다릅니다.

  • createTempView: 뷰 수명 주기는 다를 수 있습니다.

지원되지 않는 APIs

  • checkSameSparkSession

  • dropDuplicatesWithinWatermark

  • observe

  • pandas_api

  • registerTempTable

  • to_pandas_on_spark

  • withWatermark

열 APIs

열 작업의 적용 범위입니다.

APIs의 완전한 호환성

  • asc

  • between

  • contains

  • desc

  • eqNullSafe

  • getItem

  • isNull

  • isin

  • like

  • otherwise

  • startswith

  • substr

  • when

높은 호환성 APIs

  • alias

  • asc_nulls_first

  • asc_nulls_last

  • astype

  • bitwiseAND

  • bitwiseOR

  • bitwiseXOR

  • cast

  • desc_nulls_first

  • desc_nulls_last

  • endswith

  • isNotNull

참고

  • cast: Spark에서는 일부 유효하지 않은 캐스트가 NULL을 반환하지만, Snowpark에서는 오류가 발생합니다.

  • alias: 구조체 필드 표시 형식은 다를 수 있습니다.

부분적 호환성 APIs

  • dropFields

  • ilike

  • over

  • rlike

  • withField

참고

  • over: 윈도우 프레임 사양에 미세한 차이가 있을 수 있습니다.

  • rlike: Regex 구문은 Snowflake 규칙을 따릅니다.

SparkSession APIs

APIs의 완전한 호환성

  • range

  • sql

  • table

높은 호환성 APIs

  • createDataFrame

참고

스키마 추론은 서로 다른 유형(예: NUMBER(38,0)LONG)을 생성할 수 있습니다.

부분적 호환성 APIs

  • addArtifact

  • addArtifacts

  • addTag

  • clearTags

  • getTags

  • interruptAll

  • interruptOperation

  • interruptTag

  • removeTag

참고

  • 태그는 Snowflake 쿼리 태그에 매핑됩니다.

  • 인터럽트 작업은 작업 IDs 대신 Snowflake 쿼리 IDs를 사용합니다.

지원되지 않는 APIs

  • copyFromLocalToFs

  • stop

GroupedData APIs

APIs의 완전한 호환성

  • agg

  • mean

  • pivot

높은 호환성 APIs

  • agg

  • mean

  • pivot

부분적 호환성 APIs

  • apply

  • avg

  • sum

지원되지 않는 APIs

  • applyInPandasWithState

  • cogroup

DataFrameReader APIs

APIs의 완전한 호환성

  • table

높은 호환성 APIs

  • csv

부분적 호환성 APIs

  • json

  • load

  • parquet

  • jdbc

참고

  • 파일 경로는 Snowflake 스테이지 또는 클라우드 저장소(S3, GCS, Azure)를 사용합니다.

  • 스키마 추론은 네이티브 Spark와 다를 수 있습니다.

  • 일부 형식별 옵션은 지원되지 않을 수 있습니다.

지원되지 않는 APIs

  • orc

DataFrameWriter APIs

APIs의 완전한 호환성

  • mode

  • saveAsTable

  • text

부분적 호환성 APIs

  • csv

  • json

  • options

  • parquet

참고

  • 쓰기 작업은 Snowflake 스테이지 또는 클라우드 저장소로 이동합니다.

  • 분할 동작은 다를 수 있습니다.

지원되지 않는 APIs

  • bucketBy

  • insertInto

  • jdbc

  • orc

  • sortBy

DataFrameWriterV2 APIs

최신 DataFrameWriterV2 API의 적용 범위입니다.

APIs의 완전한 호환성

  • replace

부분적 호환성 APIs

  • append

  • create

  • createOrReplace

  • option

  • options

  • partitionedBy

  • tableProperty

  • using

카탈로그 APIs

APIs의 완전한 호환성

  • cacheTable

  • clearCache

  • dropGlobalTempView

  • dropTempView

  • isCached

  • refreshByPath

  • refreshTable

  • uncacheTable

높은 호환성 APIs

  • currentCatalog

  • listCatalogs

  • listColumns

  • recoverPartitions

  • setCurrentCatalog

참고

  • listColumns: 열 이름은 대문자로 처리되고 유형은 Snowflake 전용으로 지정됩니다.

  • 오류 메시지는 형식이 다를 수 있습니다.

지원되지 않는 APIs

  • createExternalTable

  • createTable

  • functionExists

  • getFunction

  • listFunctions

  • registerFunction

윈도우 및 WindowSpec APIs

윈도우 함수의 적용 범위입니다.

윈도우(모든 D0) APIs

  • partitionBy

  • orderBy

  • rangeBetween

  • rowsBetween

  • unboundedPreceding

  • unboundedFollowing

  • currentRow

WindowSpec(모든 D0) APIs

  • partitionBy

  • orderBy

  • rangeBetween

  • rowsBetween