함수 목록

룰은 주요 기능을 이용하기 위해서 함수를 사용할 수 있습니다.

본 절에서는 각 함수를 다음과 같은 항목으로 구분하여 설명합니다.

  • 카테고리

  • 설명

  • 함수 형식

  • 입력값

  • 출력

  • 예시

  • 기타 사항

현재 데이터 프리퍼레이션에서 지원하는 함수 종류는 다음과 같습니다.

함수는 지속적으로 추가 보완될 수 있습니다.

length

카테고리

  • String Function

설명

  • 입력된 문자열의 길이를 반환합니다.

함수 형식

  • length(string_value)

입력값

  • string_value: 길이를 구하고자 하는 문자열.

출력

  • Integer

예시

  • length(first_name)

if

카테고리

  • Logical Function

설명

  • 조건문을 검사하여 TRUE나 FALSE에 해당하는 값을 반환합니다.

함수 형식

  • if(condition)

  • if(condition, true_value, false_value)

입력값

  • condition: 참/거짓 여부를 검사하고자 하는 조건.

  • true_value: 조건문이 참일 경우 반환되는 값.

  • false_value:조건문이 거짓일 경우 반환되는 값.

출력

  • Any

예시

  • if(gender==‘male’) : TRUE

  • if(age<18, ‘kid’, ‘adult’) : ‘adult’

기타 사항

  • true_value/false_value가 없는 경우에는 Boolean type의 결과 TURE 혹은 FALSE를 반환합니다.

  • ture_value와 false_value의 데이터 타입은 동일해야 합니다.

isnull

카테고리

  • Logical Function

설명

  • 입력된 컬럼의 값이 null 인지 판단합니다. null이면 TRUE, 아니면 FALSE를 반환합니다.

함수 형식

  • isnull(condition)

입력값

  • condition: null 여부를 판단하고자 하는 컬럼.

출력

  • Boolean

예시

  • isnull(telephone) : FALSE

isnan

카테고리

  • Logical Function

설명

  • 입력된 값이 NaN(Not-a-Number) 인지 판단합니다. NaN이면 TRUE, 아니면 FALSE를 반환합니다.

함수 형식

  • isnan(condition)

입력값

  • condition: NaN 여부를 판단하고자 하는 컬럼 이나 수식.

출력

  • Boolean

예시

  • isnan(1000/ratio)

기타 사항

  • condition의 결과는 Double Value이어야 합니다.

upper

카테고리

  • String Function

설명

  • 입력된 문자열 내의 알파벳을 모두 대문자로 치환하여 반환합니다.

함수 형식

  • upper(string_value)

입력값

  • string_value: 대문자로 치환하고자 하는 문자열.

출력

  • String

예시

  • upper(last_name)

  • upper(‘Hello world’) : ’HELLO WORLD’

lower

카테고리

  • String Function

설명

  • 입력된 문자열 내의 알파벳을 모두 소문자로 치환하여 반환합니다.

함수 형식

  • lower(string_value)

입력값

  • string_value: 소문자로 치환하고자 하는 문자열.

출력

  • String

예시

  • lower(last_name)

  • lower(‘Hello WORLD’) : ’hello world’

trim

카테고리

  • String Function

설명

  • 입력된 문자열의 앞/뒤에 있는 공백을 제거하여 반환합니다.

함수 형식

  • trim(string_value)

입력값

  • string_value: 공백을 제거하고자 하는 문자열.

출력

  • String

예시

  • trim(comment)

  • trim(‘  .   Hi!   ‘) : ‘.   Hi!’

ltrim

카테고리

  • String Function

설명

  • 입력된 문자열의 앞(왼쪽)에 있는 공백을 제거하여 반환합니다.

함수 형식

  • ltrim(string_value)

입력값

  • string_value: 공백을 제거하고자 하는 문자열.

출력

  • String

예시

  • ltrim(comment)

  • ltrim(‘  .   Hi!   ‘) : ’.   Hi!   ‘

rtrim

카테고리

  • String Function

설명

  • 입력된 문자열의 뒤(오른쪽)에 있는 공백을 제거하여 반환합니다.

함수 형식

  • rtrim(string_value)

입력값

  • string_value: 공백을 제거하고자 하는 문자열.

출력

  • String

예시

  • rtrim(comment)

  • rtrim(‘  .   Hi!   ‘) : ‘  .   Hi!’

substring

카테고리

  • String Function

설명

  • 입력된 문자열의 일부를 반환합니다.

함수 형식

  • substring(string_value, begin_index, offset)

  • substring(string_value, begin_index)

입력값

  • string_value: 편집하고자 하는 문자열.

  • begin_index: 대상 문자열에서 추출하고자 하는 부분의 시작 index. 문자열의 처음은 0. 음수로 입력하면 문자열의 마지막 글자부터 거슬러 올라간다.

  • offset: 대상 문자열에서 추출하고자 하는 문자열의 길이. 입력하지 않으면 begine_index부터 문자열의 마지막까지 추출한다.

출력

  • String

예시

  • substring(user_id, 0, 5)

  • substring(‘hello world’, 1, 7) : ‘ello w’

  • substring(〈metatron〉, -2) : 〈on〉

concat

카테고리

  • String Function

설명

  • 입력된 복수의 문자열을 연결하여 반환합니다.

함수 형식

  • concat(string_value1, string_value2, string_value3)

입력값

  • string_value(X): 연결하고자 하는 문자열. n개를 복수로 입력 가능.

출력

  • String

예시

  • concat(first_name, ‘-‘, last_name) : ‘Jane-Doe’

  • concat(‘1980’, ’02’) : ‘198002’

concat_ws

카테고리

  • String Function

설명

  • 입력된 복수의 문자열을 연결하면서 문자열 사이에 Separator(구분자)를 넣어 반환합니다.

함수 형식

  • concat(separator, stirng_value1, string_value2)

입력값

  • separator: 연결할 문자열들 사이에 들어갈 구분자.

  • string_value(X): 연결하고자 하는 문자열. n개를 복수로 입력 가능.

출력

  • String

예시

  • concat_ws(‘, ’, first_name, last_name) : ‘Jane, Doe’

  • concat_ws(‘-‘, ‘010’, ‘1234’, ‘5678’) : ’010-1234-5678’

year

카테고리

  • Timestamp Function

설명

  • 입력된 Timestamp 값에서 연도에 해당하는 값을 반환합니다.

함수 형식

  • year(timestamp_value)

입력값

  • timestamp_value: 연도를 추출하고자 하는 timestamp

출력

  • Integer

예시

  • year(birthday)

month

카테고리

  • Timestamp Function

설명

  • 입력된 Timestamp 값에서 월에 해당하는 값을 반환합니다.

함수 형식

  • month(timestamp_value)

입력값

  • timestamp_value: 월을 추출하고자 하는 timestamp

출력

  • Integer

예시

  • month(birthday)

day

카테고리

  • Timestamp Function

설명

  • 입력된 Timestamp 값에서 일에 해당하는 값을 반환합니다.

함수 형식

  • day(timestamp_value)

입력값

  • timestamp_value: 일을 추출하고자 하는 timestamp

출력

  • Integer

예시

  • day(birthday)

hour

카테고리

  • Timestamp Function

설명

  • 입력된 Timestamp 값에서 시간에 해당하는 값을 반환합니다.

함수 형식

  • hour(timestamp_value)

입력값

  • timestamp_value: 시간을 추출하고자 하는 timestamp

출력

  • Integer

예시

  • hour(last_login)

minute

카테고리

  • Timestamp Function

설명

  • 입력된 Timestamp 값에서 분에 해당하는 값을 반환합니다.

함수 형식

  • minute(timestamp_value)

입력값

  • timestamp_value: 분을 추출하고자 하는 timestamp

출력

  • Integer

예시

  • minute(last_login)

second

카테고리

  • Timestamp Function

설명

  • 입력된 Timestamp 값에서 초에 해당하는 값을 반환합니다.

함수 형식

  • second(timestamp_value)

입력값

  • timestamp_value: 초를 추출하고자 하는 timestamp

출력

  • Integer

예시

  • second(last_login)

millisecond

카테고리

  • Timestamp Function

설명

  • 입력된 Timestamp 값에서 밀리초(1/1000 초)에 해당하는 값을 반환합니다.

함수 형식

  • millisecond(timestamp_value)

입력값

  • timestamp_value: 밀리초를 추출하고자 하는 timestamp

출력

  • Integer

예시

  • millisecond(last_login)

now

카테고리

  • Timestamp Function

설명

  • 입력된 Timezone 기준의 현재 시간을 반환합니다.

함수 형식

  • now()

  • now(timezone)

입력값

  • timzone: 현재시간을 구하고자 하는 Timezone의 fulll-name.

출력

  • Integer

예시

  • now()

  • now(‘Asia/Seoul’)

기타 사항

  • Timezone 값을 입력하지 않을 시 UTC 기준의 시간 반환.

add_time

카테고리

  • Timestamp Function

설명

  • 입력된 Timestamp 값에 일정 Time unit 값을 더하거나 뺀 값을 반환합니다.

함수 형식

  • add_time(timestamp, delta, time_unit)

입력값

  • timestamp: 대상이되는 원본 timestamp 값

  • delta: 더하거나 빼고자 하는 날짜/시간 값

  • time_unit: 더하거나 빼고자 하는 날짜/시간의 단위(문자열로 입력). year, month, day, hour, minute, second, millisecond.

출력

  • Integer

예시

  • add_time(end_date, 10, ‘day’)

  • add_time(end_date, -1, ‘month’)

sum

카테고리

  • Aggregation Function

설명

  • 대상 값들의 합을 반환합니다.

함수 형식

  • sum(target_col)

입력값

  • target_col: 합을 구하고자 하는 대상 컬럼

출력

  • Double

예시

  • sum(profit)

기타 사항

  • Aggregation과 Window 룰에서만 사용 가능.

avg

카테고리

  • Aggregation Function

설명

  • 대상 값들의 평균을 반환합니다.

함수 형식

  • avg(target_col)

입력값

  • target_col: 평균을 구하고자 하는 대상 컬럼

출력

  • Double

예시

  • avg(profit)

기타 사항

  • Aggregation과 Window 룰에서만 사용 가능.

max

카테고리

  • Aggregation Function

설명

  • 대상 값들 중 가장 큰 값을 반환합니다.

함수 형식

  • max(target_col)

입력값

  • target_col: 최대값을 구하고자 하는 대상 컬럼

출력

  • Double

예시

  • max(profit)

기타 사항

  • Aggregation과 Window 룰에서만 사용 가능.

min

카테고리

  • Aggregation Function

설명

  • 대상 값들 중 가장 작은 값을 반환합니다.

함수 형식

  • min(target_col)

입력값

  • target_col: 최소값을 구하고자 하는 대상 컬럼

출력

  • Double

예시

  • min(profit)

기타 사항

  • Aggregation과 Window 룰에서만 사용 가능.

count

카테고리

  • Aggregation Function

설명

  • 대상의 줄(row)수를 반환합니다.

함수 형식

  • count()

출력

  • Double

예시

  • count()

기타 사항

  • Aggregation과 Window 룰에서만 사용 가능.

math.abs

카테고리

  • Math Function

설명

  • 입력된 값의 절대값을 반환합니다.

함수 형식

  • math.abs(value)

입력값

  • value: 절대값을 구하고자 하는 숫자.

출력

  • Double

예시

  • math.abs(-10) : 10

math.acos

카테고리

  • Math Function

설명

  • 입력된 값의 아크코사인 값을 반환합니다.

함수 형식

  • math.acos(value)

입력값

  • value: 아크코사인 값을 구하고자 하는 코사인값으로 -1에서 1 사이의 값.

출력

  • Double

예시

  • math.acos(-1) : 3.141592653589793

math.asin

카테고리

  • Math Function

설명

  • 입력된 값의 아크사인 값을 반환합니다.

함수 형식

  • math.asin(value)

입력값

  • value: 아크사인 값을 구하고자 하는 사인값으로 -1에서 1사이의 값.

출력

  • Double

예시

  • math.asin(-1) : -1.5707963267948966

math.atan

카테고리

  • Math Function

설명

  • 입력된 값의 아크사인 값을 반환합니다.

함수 형식

  • math.atan(value)

입력값

  • value: 아크사인 값을 구하고자 하는 사인값으로 -1에서 1사이의 값.

출력

  • Double

예시

  • math.asin(-1) : -1.5707963267948966

math.cbrt

카테고리

  • Math Function

설명

  • 입력된 값의 세제곱근 값을 반환합니다.

함수 형식

  • math.cbrt(value)

입력값

  • value: 세제곱근 값을 구하고자 하는 숫자.

출력

  • Double

예시

  • math.cbrt(5) : 1.709975946676697

math.ceil

카테고리

  • Math Function

설명

  • 입력된 값을 일의 배수가 되도록 올림한 값을 반환합니다.

함수 형식

  • math.ceil(value)

입력값

  • value: 일의 자리로 올림 하고자 하는 숫자.

출력

  • Double

예시

  • math.ceil(15.142) : 16

math.cos

카테고리

  • Math Function

설명

  • 입력된 값의 코사인 값을 반환합니다.

함수 형식

  • math.cos(value)

입력값

  • value: 코사인 값을 구하고자 하는 라디안 각도

출력

  • Double

예시

  • math.cos(45) : 0.5253219888177297

math.cosh

카테고리

  • Math Function

설명

  • 입력된 값의 하이퍼볼릭 코사인 값을 반환합니다.

함수 형식

  • math.cosh(value)

입력값

  • value: 하이퍼볼릭 코사인 값을 구하고자 하는 숫자.

출력

  • Double

예시

  • math.cosh(9) : COSH(9) => 4051.5420254925943

math.exp

카테고리

  • Math Function

설명

  • 자연 로그값 e를 입력된 값만큼 거듭제곱한 값을 반환합니다.

함수 형식

  • math.exp(value)

입력값

  • value: 자연 로그값 e를 거듭제곱 하고자 하는 횟수.

출력

  • Double

예시

  • math.exp(4) : 54.598150033144236

math.expm1

카테고리

  • Math Function

설명

  • 자연 로그값 e를 입력된 값만큼 거듭제곱한 값에서 1을 뺀 값을 반환합니다.

함수 형식

  • math.expm1(value)

입력값

  • value: 자연 로그값 e를 거듭제곱 하고자 하는 횟수.

출력

  • Double

예시

  • math.expm1(4) : 53.598150033144236

math.getExponent

카테고리

  • Math Function

설명

  • 입력된 값 N에 대하여 2exp <= N을 만족하는 exp 값 중 가장 큰 값을 반환합니다.

함수 형식

  • math.getExponent(value)

입력값

  • value: 2exp <= N를 만족하는 exp 값을 찾을 때 N에 해당하는 숫자.

출력

  • Double

예시

  • math.getExponent(9) : 3

math.round

카테고리

  • Math Function

설명

  • 입력된 값을 일의 자리로 반올림 한 값을 반환합니다.

함수 형식

  • math.round(value)

입력값

  • value: 일의 자리로 반올림 하고자 하는 숫자

출력

  • Double

예시

  • math.round(14.2) : 14

math.signum

카테고리

  • Math Function

설명

  • 입력된 값의 부호를 반환합니다.

함수 형식

  • math.signum(value)

입력값

  • value: 부호를 추출하고자 하는 숫자

출력

  • Double

예시

  • math.signum(-24) : -1

기타 사항

  • 입력된 숫자가 양수인 경우 1, 0인 경우 0, 음수인 경우 -1을 반환한다.

math.sin

카테고리

  • Math Function

설명

  • 입력된 값의 사인 값을 반환합니다.

함수 형식

  • math.sin(value)

입력값

  • value: 사인 값을 구하고자 하는 라디안 각도

출력

  • Double

예시

  • math.sin(90) : 0.8939966636005579

math.sinh

카테고리

  • Math Function

설명

  • 입력된 값의 하이퍼볼릭 사인 값을 반환합니다.

함수 형식

  • math.sinh(value)

입력값

  • value: 하이퍼볼릭 사인 값을 구하고자 하는 숫자

출력

  • Double

예시

  • math.sinh(1) : 1.1752011936438014

math.sqrt

카테고리

  • Math Function

설명

  • 입력된 값의 제곱근을 반환합니다.

함수 형식

  • math.sqrt(value)

입력값

  • value: 제곱근 값을 구하고자 하는 숫자

출력

  • Double

예시

  • math.sqrt(4) : 2

math.tan

카테고리

  • Math Function

설명

  • 입력된 값의 탄젠트 값을 반환합니다.

함수 형식

  • math.tan(value)

입력값

  • value: 탄젠트 값을구하고자 하는 라디안 각도

출력

  • Double

예시

  • math.tan(10) : 0.6483608274590866

math.tanh

카테고리

  • Math Function

설명

  • 입력된 값의 하이퍼볼릭 탄젠트 값을 반환합니다.

함수 형식

  • math.tanh(value)

입력값

  • value: 하이퍼볼릭 탄젠트 값을 구하고자 하는 각도.

출력

  • Double

예시

  • math.tanh(4) : 0.999329299739067

time_diff

카테고리

  • Timestamp Function

설명

  • 입력된 두 Timestamp 값의 차를 millisecond 단위로 계산하여 반환합니다.

함수 형식

  • time_diff(timestamp1, timestamp2)

입력값

  • timestamp1:C = B - A 에서 A에 해당하는 시간 값.

  • timestamp2: C = B - A 에서 B에 해당하는 시간 값.

출력

  • Double

예시

  • time_diff(order_date, shipped_date)

기타 사항

  • 결과 값 = timestamp2 - timestamp1

timestamp

카테고리

  • Timestamp Function

설명

  • 새로운 Timestamp 값을 생성합니다.

함수 형식

  • timestamp(value, format)

입력값

  • value: timestamp 값으로 생성하고자 하는 날짜/시간 값.

  • format: value 값의 시간 형식.

출력

  • Timestamp

예시

  • timestamp(‘2011-01-01’, ‘yyyy-MM-dd’) : 2011-01-01T00:00:00.000Z

row_number

카테고리

  • Window Function

설명

  • Partition 내에서 Order 순으로 정렬한 Row의 일련번호를 생성합니다.

함수 형식

  • row_number()

출력

  • Long

예시

  • row_number()

기타 사항

  • Window Rule에서만 사용 가능.

rolling_sum

카테고리

  • Window Function

설명

  • Partition 내에서 앞/뒤의 지정한 수의 Row의 값들의 합을 반환합니다.

함수 형식

  • rolling_sum(target_col, before, after)

입력값

  • target_col: 합을 구하고자 하는 대상 컬럼 명.

  • before: 합산하고자 하는 선행 row의 수.

  • after: 합산하고자 하는 후행 row의 수.

출력

  • Long/Double

예시

  • rolling_sum(profit, 3, 3) : 같은 partition 내의 앞뒤 3개 row를 포함해 총 7개 row의 profit을 합산.

기타 사항

  • Window Rule에서만 사용 가능.

rolling_avg

카테고리

  • Window Function

설명

  • Partition 내에서 앞/뒤의 지정한 수의 Row의 값들의 평균값을 반환합니다.

함수 형식

  • rolling_avg(target_col, before, after)

입력값

  • target_col: 평균을 구하고자 하는 대상 컬럼 명.

  • before: 평균을 구하고자 하는 선행 row의 수.

  • after: 평균을 구하고자 하는 후행 row의 수.

출력

  • Long/Double

예시

  • rolling_avg(profit, 3, 3) : 같은 partition 내의 앞뒤 3개 row를 포함해 총 7개 row의 profit의 평균.

기타 사항

  • Window Rule에서만 사용 가능.

lag

카테고리

  • Window Function

설명

  • Partition 내에서 지정한 수 만큼 앞선 Row의 값을 반환합니다.

함수 형식

  • lag(target_col, before)

입력값

  • target_col: 대상 컬럼 명.

  • before: 현재 row에서 얼만큼 앞선 row를 반환할지 지정하는 수.

출력

  • Long/Double

예시

  • lag(profit, 2) : 같은 partition 내 2 줄 위의 row의 profit 값을 반환합니다. 2 줄 위의 값이 없다면 null을 반환합니다.

기타 사항

  • Window Rule에서만 사용 가능.

lead

카테고리

  • Window Function

설명

  • Partition 내에서 지정한 수 만큼 뒤에 있는 Row의 값을 반환합니다.

함수 형식

  • lead(target_col, after)

입력값

  • target_col: 대상 컬럼 명.

  • after: 현재 row에서 얼만큼 뒤에 있는 row를 반환할지 지정하는 수.

출력

  • Long/Double

예시

  • lead(profit, 2) : 같은 partition 내 2 줄 아래의 row의 profit 값을 반환합니다. 2 줄 아래의 값이 없다면 null을 반환합니다.

기타 사항

  • Window Rule에서만 사용 가능.

ismismatched

카테고리

  • Logical Function

설명

  • 지정한 컬럼의 Value가 특정 Column Type과 일치하는지 여부를 반환합니다.

함수 형식

  • ismismatched(target_col, column_type)

입력값

  • target_col: type을 검사하고자 하는 컬럼 명.

  • column_type: 일치 여부를 확인하고자 하는 Type. (문자열로 입력) String, Boolean, Timestamp, Long, Double

출력

  • Boolean

예시

  • ismismatched(birth_date, timestamp) : 해당 row의 값이 timestamp인 경우엔 false, 아닌 경우엔 true.

contains

카테고리

  • String Function

설명

  • 지정한 컬럼의 Value가 특정 문자열을 포함하는지 여부를 반환합니다.

함수 형식

  • contains(target_col, search_word)

입력값

  • target_col: 문자열을 검색하고자 하는 컬럼 명.

  • search_word: 컬럼에서 찾고자 하는 문자열.

출력

  • Boolean

예시

  • contains(name, 〈son〉) : name에 son이 들어가는 경우 True. 〈Micheal Jackson〉, 〈Son Heung Min〉 등

startswith

카테고리

  • String Function

설명

  • 지정한 컬럼의 Value가 특정 문자열로 시작하는지 여부를 반환합니다.

함수 형식

  • startswith(target_col, search_word)

입력값

  • target_col: 문자열을 검색하고자 하는 컬럼 명.

  • search_word: 컬럼에서 찾고자 하는 문자열.

출력

  • Boolean

예시

  • startswith(name, 〈김〉) : name이 〈김’으로 시작하는 경우 True. 〈김철수〉, 〈김수지〉 등

endswith

카테고리

  • String Function

설명

  • 지정한 컬럼의 Value가 특정 문자열을 끝나는지 여부를 반환합니다.

함수 형식

  • endswith(target_col, search_word)

입력값

  • target_col: 문자열을 검색하고자 하는 컬럼 명.

  • search_word: 컬럼에서 찾고자 하는 문자열.

출력

  • Boolean

예시

  • endswith(customer_code, 〈M〉) : customer_code가 M으로 끝나는 경우 True. 〈1340M〉, 〈0020M〉 등