2010-12-08 3 views
6

"3"과 같은 숫자가있는 필드가 포함 된 CSV 파일을 읽었습니다. PigLatin을 사용하여이 필드를 "3"에서 3으로 변환 할 수 있습니까? SUM() - 함수를 사용해야합니다."3"을 PigLatin으로 변환하십시오.

도움 주셔서 감사합니다.

+3

길을 잃어 버렸어? (나는 네가 실제로 말하는 것을 안다. 나는 단지 주위를 어지럽히고있다. P) – BoltClock

+0

무슨 뜻인지 모르겠다. – Christoph

+1

돼지 라틴어 (Hadoop 하위 프로젝트가 아닌 "언어")가 주로 미국인인지 아니면 주로 원어민이 모르는 것이 있는지 궁금합니다. 크리스토프가 독일에있는 것 같습니다. 어쨌든, Christoph, Pig Latin은 초기 소리를 단어의 끝으로 이동시키고 "ay"를 추가하여 영어 단어가 변경되는 놀이 언어입니다. –

답변

6

TOKENIZE 함수는 단어 분리 기호로 간주되는 다양한 문자에서 문자열을 분할합니다. 그 중 하나는 인용 부호입니다. 따라서 "3"을 토큰 화하고 가운데 항목을 가져 오는 경우 3이되어야합니다.

9

무엇 단지 REPLACE" 제거에 대한? 예를 들어

:

data = 
    LOAD 'data.txt' AS (num:CHARARRAY); 

numbers = 
    FOREACH data 
    GENERATE 
     (INT) REPLACE(num, '\\"', ''); 

그런 다음 수 GROUPSUM.

한 가지 장점은 반환 된 문자열을 직접 숫자로 변환 할 수 있다는 것입니다 (가방을 처리 할 필요가 없음). REGEX_EXTRACT도 동일한 작업을 수행하는 데 사용할 수 있습니다.

+0

1보다 큰 모든 값을 선택해야하는 필터를 사용해야했습니다. 이렇게했습니다 :'inputData = FILTER inputData BY (INT) REPLACE ((chararray) value # 'val', '\\ "', '')> 1; – zengr

관련 문제