Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

Spark SQL 수학 함수

숫자 함수의 인자는 열 또는 상수 SQL 표현식입니다. 데이터 타입의 범위와 ANSI 설정에 따라 overflow와 잘못된 값의 처리가 달라질 수 있습니다.

반올림과 부호

함수와 인자의미
ABS(expr)절댓값
BROUND(expr[, scale])기본 0자리, HALF_EVEN 반올림
CEIL(expr)올림
FLOOR(expr)내림
NEGATIVE(expr)단항 음수, 부호 반전
RINT(expr)가장 가까운 수학적 정수를 double로 반환
ROUND(expr[, scale])기본 0자리, HALF_UP 반올림
SIGNUM(expr)부호 값

scale이 0 이상이면 소수 자리, 음수이면 정수부 자릿수에서 반올림합니다. HALF_EVEN은 정확한 중간값을 짝수 쪽으로 처리하는 bankers' rounding입니다.

SELECT
    ROUND(2.5, 0) AS half_up,
    BROUND(2.5, 0) AS half_even,
    ROUND(1234.5, -2) AS hundreds,
    ABS(-5) AS absolute_value

로그, 지수와 거듭제곱

함수와 인자의미
CBRT(expr)세제곱근
EXP(expr)e의 거듭제곱
EXPM1(expr)exp(expr)-1
FACTORIAL(expr)팩토리얼. 0~20 범위이며 그 밖은 NULL
HYPOT(left, right)중간 overflow/underflow를 피하며 sqrt(left*left+right*right) 계산
LOG(expr)자연로그
LOG10(expr)밑 10의 로그
LOG1P(expr)ln(1+expr)
LOG2(expr)밑 2의 로그
POW(left, right)첫 값의 두 번째 값 거듭제곱
SQRT(expr)제곱근

HYPOT/POW의 두 번째 인자에는 다른 열이나 숫자 상수를 사용할 수 있습니다. 열 이름을 문자열 리터럴로 인용하지 않도록 구분합니다.

각도와 삼각함수

함수와 인자의미
ACOS(expr)역코사인, 결과 0~π
ASIN(expr)역사인, 결과 -π/2~π/2
ATAN(expr)역탄젠트
ATAN2(y, x)직교좌표 (x,y)의 극각. 첫 인자는 y축 좌표
COS(expr)코사인
COSH(expr)쌍곡 코사인
SIN(expr)사인
SINH(expr)쌍곡 사인
TAN(expr)탄젠트
TANH(expr)쌍곡 탄젠트
DEGREES(expr)라디안을 도로 변환
RADIANS(expr)도를 라디안으로 변환

각도 변환의 DataFrame API 이름으로 toDegrees/toRadians를 볼 수 있지만 SQL에서는 DEGREES/RADIANS 구문을 사용합니다. 삼각함수의 각도와 역함수의 반환은 라디안입니다.

SELECT
    DEGREES(3.141592653589793) AS angle_degrees,
    RADIANS(180) AS angle_radians,
    ATAN2(1.0, 2.0) AS polar_angle

진법과 비트 이동

함수와 인자의미
BIN(expr)long 값의 이진 표현 문자열
CONV(number_string, fromBase, toBase)문자열 숫자의 진법 변환
SHIFTLEFT(expr, numBits)왼쪽 비트 이동
SHIFTRIGHT(expr, numBits)부호를 유지하는 오른쪽 이동
SHIFTRIGHTUNSIGNED(expr, numBits)부호 없는 오른쪽 이동

나머지

PMOD(dividend, divisor)는 양의 제수에 대해 비음수 나머지를 얻는 데 사용합니다. 음수 제수까지 결과가 항상 양수라고 가정하지 않습니다. 예를 들어 PMOD(-3,4)는 1이고, 음수 제수의 PMOD(-5,-6)는 -5가 될 수 있습니다.

SELECT
    PMOD(-3, 4) AS non_negative_remainder,
    CONV('1010', 2, 10) AS decimal_text,
    SHIFTLEFT(1, 2) AS shifted_value,
    FACTORIAL(5) AS factorial_value

조건부 NULL 처리와 여러 열의 최댓값/최솟값은 해시와 조건식, 집계 수준의 합계/평균은 집계 함수와 구분합니다.