大規模なデータセットを扱う場合、中央値の検索は次のような作業になる可能性があります。計算コストのかかるタスク。 Spark の sortBy() や sortByKey() などの中央値を計算するためのネイティブ メソッドは、数百万の要素を含む RDD には適していません。 Spark バージョン 2.0 の近似Quantile() メソッドは、中央値を含む分位数を計算するための近似解を提供します。このメソッドは、Greenwald-Khanna アルゴリズムを利用して、最小の計算コストで中央値の正確な推定を提供します。
Spark 2.2 では、複数の列にわたる分位点の推定のサポートが導入されました。これにより、より複雑なデータセットでの分位値の計算が可能になります。
aboutQuantile() を直接使用するだけでなく、about_percentile 関数を使用して SQL 集計でも利用できます。この関数は、データフレーム内の分位点を推定するプロセスを簡素化します。
2.0 より前の Spark バージョンの場合は、中央値を近似するための代替方法が存在します。これらの方法には通常、RDD をソートし、RDD の長さに基づいて適切な値を選択することが含まれます。ただし、これらのメソッドは、aboutQuantile() と同じレベルの精度を提供しない可能性があります。
HiveContext を使用する場合は、Hive User-Defined Aggregate Functions (UDAF)分位数を推定するための別のオプションを提供します。 percentile_estimate() UDAF とpercentile() UDAF は、それぞれ整数値と連続値に使用できます。
以上がSpark で大規模なデータセットを使用して中央値と分位数を効率的に計算するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。