2012-11-15 102 views
1

我試圖用一些預先計算的值替換缺失的值。豬的bincod評估

所以我在這裏張貼的問題和遵循的建議,在這裏是代碼片段

input = LOAD 'data.txt' USING PigStorage(',') AS 
(
id1:double , id21:double ); 

gin = foreach input generate 
     id1 IS NULL ? 2 : id1, 
     id2 IS NULL ? 4 : id2; 

但我得到一個錯誤,不匹配的輸入「是」期待SEMI_COLON?

+0

的可能的複製[豬替換值拉丁]( http://stackoverflow.com/questions/13386609/replacing-values-in-pig-latin) – C8H10N4O2

回答

3

嘗試在二進制中添加圓括號。下面的工作正常對我來說:的input

內容:

0.9,1.11 
,0.3 
10.3, 

腳本:

inp = LOAD 'input' USING PigStorage(',') AS (id1:double, id2:double); 

gin = foreach inp generate 
    ((id1 IS NULL) ? 2 : id1), 
    ((id2 IS NULL) ? 4 : id2); 

DUMP gin; 

輸出:

(0.9,1.11) 
(2.0,0.3) 
(10.3,4.0)