[HADOOP] 아파치 돼지 - 어떻게 소수점 이하 자릿수를 잘라
HADOOP아파치 돼지 - 어떻게 소수점 이하 자릿수를 잘라
부동 또는 더블 수의 소수점 특정 영역을 삭감 할 가능성이 있습니까? 예를 들어 결과가 2.67894 것 => 나는 (반올림 할 때와하지 2.7) 결과로 2.6를 갖고 싶어.
해결법
-
==============================
1.그것을 시도 ... 발은 2.666,3.666,4.666666,5.3456334처럼 값입니다 .....
그것을 시도 ... 발은 2.666,3.666,4.666666,5.3456334처럼 값입니다 .....
b = foreach a GENERATE (FLOOR(val * 10) / 10); dump b;
-
==============================
2.이것에 대한 UDF (사용자 정의 함수)를 작성합니다.
이것에 대한 UDF (사용자 정의 함수)를 작성합니다.
아주 간단한 파이썬 UDF (numformat.py) :
@outputSchema('value:double') def format(data): return round(data,1)
(물론 다른 정밀도를 사용하여 UDF를 매개 변수화 할 수 있습니다.)
보다 등록하고 돼지 코드를 사용합니다. 예:
REGISTER numformat.py USING jython as numformat; A = LOAD 'so/testdata.csv' USING PigStorage(',') AS (data:double); B = FOREACH A GENERATE numformat.format(data); DUMP B;
다음과 같은 입력의 경우 :
2.1234 12.334
덤프 된 결과는 다음과 같습니다
(2.1) (12.3)
from https://stackoverflow.com/questions/29922857/apache-pig-how-to-cut-digits-after-decimal-point by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] Kerberos를 활성화 한 후 로그인 읽을 historyserver 수 없습니다 (0) | 2019.10.16 |
---|---|
[HADOOP] 일반적인 옵션을 파서를 통해 mapreduce.job.reduces을 설정할 수 없습니다 (0) | 2019.10.16 |
[HADOOP] 돼지에서 함께 여러지도를 결합 (0) | 2019.10.16 |
[HADOOP] 삭제 명령에 하이브 1.2.1 오류 (0) | 2019.10.16 |
[HADOOP] 작동하지 하둡 작업 및 작업 추적기 (0) | 2019.10.16 |