이 페이지에서는 Cloud Data Fusion Studio의 Wrangler 작업공간에서 데이터를 준비할 때 필드를 소수점으로 변환하고 변환을 수행하는 방법을 설명합니다.
십진수 데이터 읽기
- Cloud Data Fusion에서 Wrangler 작업공간으로 이동합니다.
데이터베이스나 Cloud Storage 파일에서 테이블과 같은 객체를 엽니다.
- 데이터베이스나 BigQuery 연결의 경우 테이블에 십진수 열이 있으면 Wrangler에서 이 열을
BigDecimal
유형으로 변환합니다. Wrangler에서 파이프라인을 만들면 열이decimal
데이터 유형으로 변환됩니다. 데이터 세트에 소수점으로 변환하려는 십진수가 아닌 데이터가 포함된 경우
set-column
지시문을 사용합니다.set-column : DECIMAL_COLUMN exp:{new("java.math.BigDecimal", INPUT_COLUMN)}
다음을 바꿉니다.
DECIMAL_COLUMN
: 변환할 십진수 열입니다. 지시문이 실행되면 열의 데이터 유형이BigDecimal
로 변경되고 스키마에도 적절한 데이터 유형이 포함됩니다.INPUT_COLUMN
: 변환되는 열로,STRING
,INTEGER
,LONG
,FLOAT
또는DOUBLE
유형 중 하나일 수 있습니다.
데이터 세트에 1.05, 2.698, 5.8745512와 같이 크기가 다른 값이 포함된 경우 Wrangler 지시문으로 크기를 설정하고 파이프라인에서 스키마를 수정하여 십진수 열의 크기를 설정합니다.
Wrangler에서 크기를 설정하려면 다음과 유사한 지시문을 사용합니다.
set-column : OUTPUT_COLUMN exp:{new("java.math.BigDecimal", DECIMAL_COLUMN).setScale()}
다음 예시에서는
cost
라는 열을 문자열에서 십진수로 변환하고 크기를 9로 설정하며 결과를output-column
이라는 새 열에 출력합니다.set-column : output-column exp:{new("java.math.BigDecimal", "cost").setScale(9)}
- 데이터베이스나 BigQuery 연결의 경우 테이블에 십진수 열이 있으면 Wrangler에서 이 열을
십진수 데이터 변환
Wrangler의 십진수 열은 Java BigDecimal 클래스를 사용합니다.
열이 BigDecimal 데이터 유형으로 변환되면 Class BigDecimal
의 메서드를 사용하여 열을 변환합니다.
변환 | 지시문 |
---|---|
절댓값 가져오기 | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.abs() |
십진수 값의 정밀도 가져오기 | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.precision() |
십진수 값의 크기 가져오기 | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.scale() |
십진수 값의 정수 값 가져오기 | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.unscaledValue() |
십진수 열 2개 추가 | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.add(DECIMAL_COLUMN_2) |
다른 십진수에서 십진수 빼기 | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.subtract(DECIMAL_COLUMN_2) |
십진수와 다른 십진수 곱하기 | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.multiply(DECIMAL_COLUMN_2) |
십진수 열을 다른 십진수 열로 나누고 몫 반환 | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.divide(DECIMAL_COLUMN_2) |
십진수 열을 다른 십진수 열로 나누고 나머지 반환 | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.remainder(DECIMAL_COLUMN_2) |
십진수를 정수로 변환 | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.intValue() |
십진수를 long으로 변환 | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.longValue() |
십진수를 부동 소수점 수로 변환 | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.floatValue() |
십진수를 실수로 변환 | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.doubleValue() |
십진수 값이 다른 값과 같은지 확인 | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.equals(DECIMAL_COLUMN_2) |
십진수 열 2개의 최댓값 구하기 | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.max(DECIMAL_COLUMN_2) |
십진수 열 2개의 최솟값 구하기 | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.min(DECIMAL_COLUMN_2) |
소수점 n자리를 왼쪽으로 이동 | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.movePointLeft(n) |
소수점 n자리를 오른쪽으로 이동 | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.movePointRight(n) |
십진수의 n제곱 구하기 | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.pow(n) |
소수점 이하 자릿수 빼기 | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.negate() |
소수점 뒤의 0 제거 | set-column : OUTPUT_COLUMN DECIMAL_COLUMN.stripTrailingZeros() |
다음을 바꿉니다.
OUTPUT_COLUMN
: 작업 출력이 포함된 열입니다.DECIMAL_COLUMN
: 변환된 십진수 열입니다.DECIMAL_COLUMN_2
: 십진수 열 2개의 값을 더하는 경우와 같이 작업에 포함된 두 번째 십진수 열입니다.
다음 단계
- Wrangler 지시문에 대해 자세히 알아보기