4
我試圖計算一個數據集的多少值符合篩選條件我不能指望,但我運行到問題時,過濾器沒有條目相匹配。豬過濾器返回的空袋子,
有我data
結構有很多欄目,但只有三個用在這個例子中:key
- 爲組(不是唯一的),value
數據的關鍵 - 作爲記錄浮點值,nominal_value
- 浮代表標稱值。
,現在我們使用的情況下是要找到低於標稱值10%以上的值的數目。
我在做這樣的事情:
filtered_data = FILTER data BY value <= (0.9 * nominal_value);
filtered_count = FOREACH (GROUP filtered_data BY key) GENERATE COUNT(filtered_data.value);
DUMP filtered_count;
在大多數情況下,沒有落在標稱範圍以外的值,所以filtered_data
爲空(或空不知道如何判斷。 )。這導致filtered_count
也爲空/空,這是不可取的。
我怎樣才能構建將返回值爲0時filtered_data
空/空的聲明?我試了幾個選項,我已經在網上找到:
-- Extra parens in COUNT required to avoid syntax error
filtered_count = FOREACH (GROUP filtered_data BY key) GENERATE COUNT((filtered_data.value is null ? {} : filtered_data.value));
導致:
Two inputs of BinCond must have compatible schemas. left hand side: #1259:bag{} right hand side: #1261:bag{#1260:tuple(cf#1038:float)}
和:
filtered_count = FOREACH (GROUP filtered_data BY key) GENERATE (filtered_data.value is null ? 0 : COUNT(filtered_data.value));
這導致空/空結果。