2014-12-15 4 views
2

50 개 이상의 cols가있는 데이터 스키마가 있습니다. 이제 4 개의 int 열을 함께 추가해야하는 시나리오가 생겼습니다. 4 명 중 누구도 null이 될 가능성이 있습니다.돼지에 정상적으로 null + 숫자 추가를 처리하는 방법

if i do null + 1 + null + 7 i get the result as null which is true as per given in the PIG 
https://pig.apache.org/docs/r0.7.0/piglatin_ref2.html#Nulls 

i.e. if either sub-expression is null, the resulting expression is null. 

누군가 이러한 시나리오로 처리하는 방법을 알려 주시기 바랍니다. UDF를 정의하거나 널 (null)을 돌보고 추가 조작을 수행해야합니다. 미리 감사드립니다

답변

2

하나의 옵션은 열 값이 0이면 열 값을 0으로 설정하고 원래 값으로 진행하는 것입니다. 아래 예제를 참조하십시오.

1,,3 
,5,6 
7,8, 

input.txt를 PigScript :

A = LOAD 'input.txt' USING PigStorage(',') AS (f1:int,f2:int,f3:int); 
B = FOREACH A GENERATE ((f1 is null)?0:f1) + ((f2 is null)?0:f2) +((f3 is null)?0:f3); 
DUMP B; 

출력 :

(4) 
(11) 
(15) 
관련 문제