sample 運算子
從輸入資料表的隨機資料列中,傳回特定上限數目的資料表。
注意
sample
適用於速度,而不是平均分佈值。 具體來說,如果運算符在等量 2 個不同大小的聯集數據集 (,例如union
或join
運算子) 之後使用,它就不會產生「公平」結果。 建議您在資料表參考和篩選條件之後,使用sample
。sample
是不具決定性的運算子,且在每次查詢期間進行評估時,都會傳回不同的結果集。 例如,下列查詢會產生兩個不同的資料列 (即使您預期會傳回相同的資料列兩次)。
語法
T| sample
NumberOfRows
深入瞭解 語法慣例。
參數
名稱 | 類型 | 必要 | Description |
---|---|---|---|
T | string |
✔️ | 輸入表格式表達式。 |
NumberOfRows | int、long 或 real | ✔️ | 要傳回的資料列數目。 您可以指定任何數值運算式。 |
範例
let _data = range x from 1 to 100 step 1;
let _sample = _data | sample 1;
union (_sample), (_sample)
輸出
x |
---|
83 |
3 |
若要確保 _sample
在上述範例中僅會計算一次,您可使用 materialize() 函式:
let _data = range x from 1 to 100 step 1;
let _sample = materialize(_data | sample 1);
union (_sample), (_sample)
輸出
x |
---|
34 |
34 |
若要採樣資料的特定百分比 (而不是資料列的特定數目),您可以使用
StormEvents | where rand() < 0.1
若要採樣索引鍵,而非資料列 (例如採樣 10 個識別碼,並取得這些識別碼的所有資料列),您可以搭配 in
運算子,與 sample-distinct
一同使用。
let sampleEpisodes = StormEvents | sample-distinct 10 of EpisodeId;
StormEvents
| where EpisodeId in (sampleEpisodes)
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應