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¶
cachecoalescecollectcountcrossJoindropDuplicatesdrop_duplicatesdropnafillnafirstheadisEmptyjoinlimitmeltoffsetpersistrepartitionByRangereplaceselectshowtailtaketoDFtoLocalIteratortoPandasunionAllunpersistunpivotwherewithColumnsRenamedtoLocalIteratortoPandasunionAllunpersistunpivotwherewithColumnsRenamed
高い互換性がある APIs¶
aggcolRegexcorrcovcrosstabcubedescribedistinctdropexceptAllgroupBygroupbyintersectintersectAllisLocalmapInPandasorderByrollupsortunionunionByNamewithColumn
メモ¶
orderBy/sort:チェーン内の最後の DataFrame から推測される列の順序設定。union/unionByName:型拡大の動作が若干異なる場合があります。describe:統計出力の形式が異なる場合があります。
部分的な互換性がある APIs¶
aliasapproxQuantilecreateGlobalTempViewcreateOrReplaceGlobalTempViewcreateOrReplaceTempViewcreateTempViewexplainfilterfreqItemshintinputFilesprintSchemarandomSplitrepartitionsameSemanticssamplesampleByselectExprsemanticHashsortWithinPartitionssubtractsummarytransformwithColumnswithMetadata
メモ¶
explain:クエリプランの形式がSparkと異なります。repartition:パーティション数が正確ではない可能性があります。sample:ランダムサンプリングの実装が異なります。createTempView:ビューのライフサイクルが異なる場合があります。
サポートされていない APIs¶
checkSameSparkSessiondropDuplicatesWithinWatermarkobservepandas_apiregisterTempTableto_pandas_on_sparkwithWatermark
列 APIs¶
列操作の対象範囲。
完全な互換性がある APIs¶
ascbetweencontainsdesceqNullSafegetItemisNullisinlikeotherwisestartswithsubstrwhen
高い互換性がある APIs¶
aliasasc_nulls_firstasc_nulls_lastastypebitwiseANDbitwiseORbitwiseXORcastdesc_nulls_firstdesc_nulls_lastendswithisNotNull
メモ¶
cast:一部の無効なキャストはSparkで NULL を返しますが、Snowparkではエラーを返します。alias:構造フィールドの表示形式が異なる場合があります。
部分的な互換性がある APIs¶
dropFieldsilikeoverrlikewithField
メモ¶
over:ウィンドウフレームの仕様に微妙な違いがある場合があります。rlike:正規表現構文はSnowflakeの規則に従います。
SparkSession APIs¶
完全な互換性がある APIs¶
rangesqltable
高い互換性がある APIs¶
createDataFrame
メモ¶
スキーマ推論により、異なる型(例: NUMBER(38,0) と LONG)が生成される場合があります。
部分的な互換性がある APIs¶
addArtifactaddArtifactsaddTagclearTagsgetTagsinterruptAllinterruptOperationinterruptTagremoveTag
メモ¶
タグはSnowflakeクエリタグにマッピングされます。
中断操作では、IDs 操作の代わりにSnowflakeクエリ IDs を使用します。
サポートされていない APIs¶
copyFromLocalToFsstop
GroupedData APIs¶
完全な互換性がある APIs¶
aggmeanpivot
高い互換性がある APIs¶
aggmeanpivot
部分的な互換性がある APIs¶
applyavgsum
サポートされていない APIs¶
applyInPandasWithStatecogroup
DataFrameReader APIs¶
完全な互換性がある APIs¶
table
高い互換性がある APIs¶
csv
部分的な互換性がある APIs¶
jsonloadparquetjdbc
メモ¶
ファイルパスには、Snowflakeステージまたはクラウドストレージ(S3、GCS、Azure)を使用します。
スキーマ推論がネイティブSparkと異なる可能性があります。
一部の形式固有のオプションがサポートされていない場合があります。
サポートされていない APIs¶
orc
DataFrameWriter APIs¶
完全な互換性がある APIs¶
modesaveAsTabletext
部分的な互換性がある APIs¶
csvjsonoptionsparquet
メモ¶
書き込みはSnowflakeステージまたはクラウドストレージに送信されます。
パーティション分割の動作が異なる場合があります。
サポートされていない APIs¶
bucketByinsertIntojdbcorcsortBy
DataFrameWriterV2 APIs¶
新しい DataFrameWriterV2 API の適用範囲。
完全な互換性がある APIs¶
replace
部分的な互換性がある APIs¶
appendcreatecreateOrReplaceoptionoptionspartitionedBytablePropertyusing
カタログ APIs¶
完全な互換性がある APIs¶
cacheTableclearCachedropGlobalTempViewdropTempViewisCachedrefreshByPathrefreshTableuncacheTable
高い互換性がある APIs¶
currentCataloglistCatalogslistColumnsrecoverPartitionssetCurrentCatalog
メモ¶
listColumns:列名は大文字であり、型はSnowflake固有です。エラーメッセージの形式が異なる場合があります。
サポートされていない APIs¶
createExternalTablecreateTablefunctionExistsgetFunctionlistFunctionsregisterFunction
ウィンドウおよび WindowSpec APIs¶
ウィンドウ関数の対象範囲。
ウィンドウ(すべてのD0)APIs¶
partitionByorderByrangeBetweenrowsBetweenunboundedPrecedingunboundedFollowingcurrentRow
WindowSpec(すべてのD0)APIs¶
partitionByorderByrangeBetweenrowsBetween