십진수 데이터 작업

이 페이지에서는 Cloud Data Fusion Studio의 Wrangler 작업공간에서 데이터를 준비할 때 필드를 소수점으로 변환하고 변환을 수행하는 방법을 설명합니다.

십진수 데이터 읽기

  1. Cloud Data Fusion에서 Wrangler 작업공간으로 이동합니다.
  2. 데이터베이스나 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)}
      

십진수 데이터 변환

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개의 값을 더하는 경우와 같이 작업에 포함된 두 번째 십진수 열입니다.

다음 단계