sample
大きなデータセットからのランダムサンプルを返します。ここで、各データポイントが選択される確率は等しくなっています。このキーワードでは、ベルヌーイ分布が使用されます。
構文
1sample(percentage-size-of-dataset) repeatable(seed)- sample
- 必須。ランダムサンプルとして返されるデータセットのパーセントを指定します。パーセントサイズ値は、任意の正の 10 進数にすることができます。
- repeatable
- 省略可能。ランダムサンプルを確定的に作成するには、シードを指定します。sample は、repeatable に同じシード値を渡すたびに、データの同じサブセットを返します。シード値は任意の正の整数にすることができます。
使用方法
sample を使用すると、データセットからの代表サンプルに対するクエリを射影できます。ここで、各データポイントが選択される可能性は等しくなっています。sample は事前射影を実行します。
sample と repeatable は、load ステートメントの後に追加します。クエリの load ステートメントの後に実行される操作は、データのランダムサンプルにのみ影響します。例を見てみましょう。
1q = load "Opportunity" sample(10) repeatable(1);
2q = group q by all;
3q = foreach q generate count() as 'count';
4q = limit q 2000;| 行数 |
|---|
| 453 |
ここで、クエリでサンプルの行数 (453) が返されます。これはデータセットの 4600 行の約 10% になります。repeatable キーワードでは、クエリで常に同じ結果が返されます。repeatable キーワードを指定しない場合は、クエリが実行されるたびに若干異なるサイズのサンプルが返されます。データセットを変更してデータを追加した場合、repeatable で同じ結果は返されません。
group-by の例
このクエリは、各フェーズの商談数を返します。クエリで操作されるのはデータセットの 10% であるため、各フェーズでの数は、元の数の約 1/10 になります。
1q = load "Opportunity" sample(10) repeatable(1);
2q = group q by 'StageName';
3q = foreach q generate 'StageName', count() as 'count';
4q = limit q 2000;| フェーズ | 行数 |
|---|---|
| 不成立 | 89 |
| 商談成立 | 254 |
| Id。意思決定者 | 13 |
| ニーズの把握 | 15 |
| 最終交渉 | 6 |
| 認識分析 | 13 |
| 提案書/見積書の作成 | 9 |
| 見込み | 10 |
| 評価 | 25 |
| 値の提示 | 19 |
filter の例
このクエリは、各フェーズの成立商談数のみを返します。クエリで操作されるのはデータセットの 10% であるため、各フェーズでの数は、元の数の約 1/10 になります。
1q = load "Opportunity" sample(10);
2q = filter q by 'IsWon' == "true";
3q = group q by 'StageName';
4q = foreach q generate 'StageName', count() as 'count';
5q = limit q 2000;| フェーズ | 行数 |
|---|---|
| 商談成立 | 275 |