web-dev-qa-db-ja.com

Hiveでパーセンタイル関数はどのように機能しますか?

次のd _idという列を想像してみてください。

68 69 43 54 56 61 69 70 71 72 77 78 79 85 87 88 89 93 95 96 98 99 99 62 66

以下を実行すると、percentile(id, 0.9)の出力は97.2になります。何が起こっている?

6
Pratik Garg

0.9を指定すると、関数に渡すデータの90%が戻り値を下回ることになります。 25の90%は約22.5であり、97.2は正解になります。これは、4つの最高値がセット内の99 99 98 96であり、97.2が22番目(96)から23番目(98)の順序番号の間にあるためです。

3
Andrea

Andrea Romagnoliの回答に加えて、パーセンタイルの一般的な用途の1つは、次のように中央値を見つけることです。

percentile(id, 0.5)
1
Ilya