2013-08-12 4 views
0

을 생성하는 돼지의 chararray을 분할 할 수없는 쉼표로 구분하여 100 ~ 500 사이).나는, 나는 다음과 같은 형태의 튜플을 조작하고 돼지 스크립트에서 튜플

나는 다음과 같은 튜플을 좀하고 싶습니다 : U5에 U1은 A2의 chararray의 값에 해당

(a1:int,u1:int,u2:int,u3:int,u4:int,u5:int,a3:int) 

.

돼지 기능 만 사용하면 가능합니까?

다음과 같이 파이썬에서 UDF를 작성하는 시도 :

@outputSchema("int:u1,int:u2,int:u3,int:u4,int:u5") 
def mosListToTuple(list): 
    u1 = list[0:3] 
    u2 = list[5:8] 
    u3 = list[10:13] 
    u4 = list[15:18] 
    u5 = list[20:23] 
    return u1,u2,u3,u4,u5 

을하지만 오류 얻을 :

ERROR 1200: <line 1, column 4> Syntax error, unexpected symbol at or near 'u1' 

어떤 생각을?

감사합니다.

답변

3

이에 대한 자신의 UDF를 작성할 필요가 없습니다 :

B = 
    FOREACH A 
    GENERATE 
     a1, 
     FLATTEN(STRSPLIT(a2, ',')) AS (u1:int,u2:int,u3:int,u4:int,u5:int), 
     a3; 
관련 문제