"3"과 같은 숫자가있는 필드가 포함 된 CSV 파일을 읽었습니다. PigLatin을 사용하여이 필드를 "3"에서 3으로 변환 할 수 있습니까? SUM() - 함수를 사용해야합니다."3"을 PigLatin으로 변환하십시오.
도움 주셔서 감사합니다.
"3"과 같은 숫자가있는 필드가 포함 된 CSV 파일을 읽었습니다. PigLatin을 사용하여이 필드를 "3"에서 3으로 변환 할 수 있습니까? SUM() - 함수를 사용해야합니다."3"을 PigLatin으로 변환하십시오.
도움 주셔서 감사합니다.
TOKENIZE
함수는 단어 분리 기호로 간주되는 다양한 문자에서 문자열을 분할합니다. 그 중 하나는 인용 부호입니다. 따라서 "3"을 토큰 화하고 가운데 항목을 가져 오는 경우 3이되어야합니다.
주위에 따옴표를 제거하거나 JacobM의 접근 방식을 사용하는 UDF를 작성할 수 있습니다.
그러나 나중에는 chararray '3'
을 int
: (int)$1
또는 (int)myvalue
으로 전송해야합니다. 이렇게하면 sum
을 사용할 수 있습니다.
http://pig.apache.org/docs/r0.5.0/piglatin_reference.html#Cast+Operators
무엇 단지 REPLACE와 "
제거에 대한? 예를 들어
:
data =
LOAD 'data.txt' AS (num:CHARARRAY);
numbers =
FOREACH data
GENERATE
(INT) REPLACE(num, '\\"', '');
그런 다음 수 GROUP
및 SUM
.
한 가지 장점은 반환 된 문자열을 직접 숫자로 변환 할 수 있다는 것입니다 (가방을 처리 할 필요가 없음). REGEX_EXTRACT도 동일한 작업을 수행하는 데 사용할 수 있습니다.
1보다 큰 모든 값을 선택해야하는 필터를 사용해야했습니다. 이렇게했습니다 :'inputData = FILTER inputData BY (INT) REPLACE ((chararray) value # 'val', '\\ "', '')> 1; – zengr
길을 잃어 버렸어? (나는 네가 실제로 말하는 것을 안다. 나는 단지 주위를 어지럽히고있다. P) – BoltClock
무슨 뜻인지 모르겠다. – Christoph
돼지 라틴어 (Hadoop 하위 프로젝트가 아닌 "언어")가 주로 미국인인지 아니면 주로 원어민이 모르는 것이 있는지 궁금합니다. 크리스토프가 독일에있는 것 같습니다. 어쨌든, Christoph, Pig Latin은 초기 소리를 단어의 끝으로 이동시키고 "ay"를 추가하여 영어 단어가 변경되는 놀이 언어입니다. –