join および groupBy の代わりに SQL ウィンドウ関数を使用する - AWS 規範ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

join および groupBy の代わりに SQL ウィンドウ関数を使用する

ウィンドウ関数 (Spark ドキュメント) は、現在のレコードに関連するウィンドウと呼ばれる行のグループに対して計算を実行します。たとえば、現在の行と同じパーティションまたはフレーム内に配置できます。ウィンドウ関数は Spark に組み込まれており、集計関数と似ています。SUM や などの集計関数は、行のグループで動作しMAXグループごとに 1 つの戻り値を計算します。ウィンドウ関数は、移動平均の計算や、現在の行の相対位置に基づく行の値へのアクセスなど、タスクの処理に役立ちます。

Spark groupBy 関数はデータをグループに収集し、グループ化されたデータに対して集計関数を実行します。を使用するとgroupBy、 は最初にデータをSpark部分的に集約し、次に縮小されたデータセットをシャッフルします。ウィンドウ関数を使用すると、データセット全体がシャッフルされます。ウィンドウ関数を使用すると、ランタイムを高速化できます。

非常に大きなデータセットでは、列の基数が大きい場合、ウィンドウ関数が推奨されます。ただし、列の基数が少ない場合、データ集約は小さく、集計結果は結合でブロードキャストできます。