Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
ОБЛАСТЬ ПРИМЕНЕНИЯ:
Фабрика данных Azure
Azure Synapse Analytics
Tip
Попробуйте использовать фабрику данных в Microsoft Fabric, решение для аналитики с одним интерфейсом для предприятий. Microsoft Fabric охватывает все, от перемещения данных до обработки и анализа данных в режиме реального времени, бизнес-аналитики и отчетности. Узнайте, как бесплатно запустить новую пробную версию !
Потоки данных доступны как в конвейерах Фабрики данных Azure, так и в конвейерах Azure Synapse Analytics. Эта статья относится к потокам данных для сопоставления. Если вы не знакомы с преобразованиями, ознакомьтесь с вводной статьей "Преобразование данных с помощью сопоставления потоков данных".
В этой статье содержатся сведения об использовании всех выражений и функций, поддерживаемых Azure Data Factory и Azure Synapse Analytics в сопоставлении потоков данных. Сводки по каждому типу поддерживаемой функции см. в следующих статьях:
- Агрегатные функции
- Функции массивов
- Кэшированные функции подстановки
- Функции преобразования
- Функции даты и времени
- Функции выражений
- Функции карты
- Metafunctions
- Функции окна
Алфавитный список всех функций
Следующий алфавитный список включает все функции, доступные в потоках данных сопоставления.
A
abs
abs(<value1> : number) => number
Возвращает абсолютное значение числа.
abs(-20) -> 20abs(10) -> 10
acos
acos(<value1> : number) => double
Вычисляет значение арккосинуса.
acos(1) -> 0.0
add
add(<value1> : any, <value2> : any) => any
Добавляет пару строк или чисел. Добавляет дату в много дней. Добавляет длительность к метке времени. Добавляет один массив аналогичного типа к другому. Аналогично оператору +.
add(10, 20) -> 3010 + 20 -> 30add('ice', 'cream') -> 'icecream''ice' + 'cream' + ' cone' -> 'icecream cone'add(toDate('2012-12-12'), 3) -> toDate('2012-12-15')toDate('2012-12-12') + 3 -> toDate('2012-12-15')[10, 20] + [30, 40] -> [10, 20, 30, 40]toTimestamp('2019-02-03 05:19:28.871', 'yyyy-MM-dd HH:mm:ss.SSS') + (days(1) + hours(2) - seconds(10)) -> toTimestamp('2019-02-04 07:19:18.871', 'yyyy-MM-dd HH:mm:ss.SSS')
addDays
addDays(<date/timestamp> : datetime, <days to add> : integral) => datetime
Добавляет дни к дате или временной метке. То же самое, что оператор + для дат.
addDays(toDate('2016-08-08'), 1) -> toDate('2016-08-09')
addMonths
addMonths(<date/timestamp> : datetime, <months to add> : integral, [<value3> : string]) => datetime
Добавляет месяцы к метке даты или времени. При необходимости можно передать часовой пояс.
addMonths(toDate('2016-08-31'), 1) -> toDate('2016-09-30')addMonths(toTimestamp('2016-09-30 10:10:10'), -1) -> toTimestamp('2016-08-31 10:10:10')
and
and(<value1> : boolean, <value2> : boolean) => boolean
Использует логический AND оператор. То же, что и &&.
and(true, false) -> falsetrue && false -> false
approxDistinctCount
approxDistinctCount(<value1> : any, [ <value2> : double ]) => long
Возвращает приблизительное общее число различных значений для столбца. Необязательный второй параметр предназначен для управления ошибкой оценки.
approxDistinctCount(ProductID, .05) => long
array
array([<value1> : any], ...) => array
Создает массив элементов. Все элементы должны быть одного типа. Если элементы не указаны, по умолчанию используется пустой массив строк. То же, что и оператор создания [].
array('Seattle', 'Washington')['Seattle', 'Washington']['Seattle', 'Washington'][1]'Washington'
ascii
ascii(<Input> : string) => number
Возвращает числовое значение входного символа. Если входная строка имеет несколько символов, возвращается числовое значение первого символа.
ascii('A') -> 65ascii('a') -> 97
asin
asin(<value1> : number) => double
Вычисляет значение арксинуса.
asin(0) -> 0.0
assertErrorMessages
assertErrorMessages() => map
Возвращает сопоставление всех сообщений об ошибках для строки с идентификатором утверждения в качестве ключа.
Examples
assertErrorMessages() => ['assert1': 'This row failed on assert1.', 'assert2': 'This row failed on assert2.']. In this example, at(assertErrorMessages(), 'assert1') would return 'This row failed on assert1.'
associate
reassociate(<value1> : map, <value2> : binaryFunction) => map
Создает сопоставление ключей или значений. Все ключи и значения должны иметь одинаковый тип. Если элементы не указаны, по умолчанию используется сопоставление строк с типом строки. То же, что и оператор создания [ -> ]. Ключи и значения должны чередоваться.
associate('fruit', 'apple', 'vegetable', 'carrot' )=> ['fruit' -> 'apple', 'vegetable' -> 'carrot']
at
at(<value1> : array/map, <value2> : integer/key type) => array
Находит элемент в индексе массива. Индекс начинается с 1. Индекс вне границ приводит к значению NULL. Находит значение в карте при указании ключа. Если ключ не найден, он возвращает значение NULL.
at(['apples', 'pears'], 1) => 'apples'at(['fruit' -> 'apples', 'vegetable' -> 'carrot'], 'fruit') => 'apples'
atan
atan(<value1> : number) => double
Вычисляет значение арктангенса.
atan(0) -> 0.0
atan2
atan2(<value1> : number, <value2> : number) => double
Возвращает угол в радианах между положительной осью x плоскости и точкой, заданной координатами.
atan2(0, 0) -> 0.0
avg
avg(<value1> : number) => number
Возвращает среднее значение столбца.
avg(sales)
avgIf
avgIf(<value1> : boolean, <value2> : number) => number
Возвращает среднее значение столбца на основе критериев.
avgIf(region == 'West', sales)
B
between
between(<value1> : any, <value2> : any, <value3> : any) => boolean
Проверяет, находится ли первое значение между двумя другими значениями включительно. Можно сравнить числовые, строковые и datetime значения.
between(10, 5, 24)truebetween(currentDate(), currentDate() + 10, currentDate() + 20)false
bitwiseAnd
bitwiseAnd(<value1> : integral, <value2> : integral) => integral
Использует побитовый And оператор для целочисленных типов. Аналогично оператору &.
bitwiseAnd(0xf4, 0xef)0xe4(0xf4 & 0xef)0xe4
bitwiseOr
bitwiseOr(<value1> : integral, <value2> : integral) => integral
Использует побитовый Or оператор для целочисленных типов. Аналогично оператору |.
bitwiseOr(0xf4, 0xef)0xff(0xf4 | 0xef)0xff
bitwiseXor
bitwiseXor(<value1> : any, <value2> : any) => any
Использует побитовый Or оператор для целочисленных типов. То же, что оператор |
bitwiseXor(0xf4, 0xef)0x1b(0xf4 ^ 0xef)0x1b(true ^ false)true(true ^ true)false
blake2b
blake2b(<value1> : integer, <value2> : any, ...) => string
Вычисляет дайджест Blake2 набора столбцов различных примитивных типов данных, при условии, что битовая длина может быть только кратной 8, в диапазоне от 8 до 512. Его можно использовать для вычисления отпечатка пальца для строки.
blake2b(256, 'gunchus', 8.2, 'bojjus', true, toDate('2010-4-4'))'c9521a5080d8da30dffb430c50ce253c345cc4c4effc315dab2162dac974711d'
blake2bBinary
blake2bBinary(<value1> : integer, <value2> : any, ...) => binary
Вычисляет дайджест Blake2 набора столбцов различных примитивных типов данных при указании битовой длины, которая может быть только кратна 8 и находится в диапазоне от 8 до 512. Его можно использовать для вычисления отпечатка пальца для строки.
blake2bBinary(256, 'gunchus', 8.2, 'bojjus', true, toDate('2010-4-4'))unHex('c9521a5080d8da30dffb430c50ce253c345cc4c4effc315dab2162dac974711d')
byItem
byItem(<parent column> : any, <column name> : string) => any
Находит вложенный элемент в структуре или массиве структур. Если найдено несколько совпадений, то возвращается первое совпадение. Если совпадений нет, возвращается значение NULL. Возвращаемое значение должно быть преобразовано одним из действий преобразования типов (например ? date , и ? string). Обращайтесь к именам столбцов, известным на этапе проектирования, по их именам. Вычисляемые входные данные не поддерживаются, но можно использовать замену параметров.
byItem( byName('customer'), 'orderItems') ? (itemName as string, itemQty as integer)byItem( byItem( byName('customer'), 'orderItems'), 'itemName') ? string
byName
byName(<column name> : string, [<stream name> : string]) => any
Выбирает значение столбца по имени в потоке. В качестве второго аргумента вы можете передать необязательное имя потока. Если найдено несколько совпадений, то возвращается первое совпадение. Если совпадений нет, возвращается значение NULL. Возвращаемое значение должно быть преобразовано одним из функций преобразования типов (например TO_DATE , и TO_STRING). Обращайтесь к именам столбцов, известным на этапе проектирования, по их именам. Вычисляемые входные данные не поддерживаются, но можно использовать замену параметров.
toString(byName('parent'))toLong(byName('income'))toBoolean(byName('foster'))toLong(byName($debtCol))toString(byName('Bogus Column'))toString(byName('Bogus Column', 'DeriveStream'))
byNames
byNames(<column names> : array, [<stream name> : string]) => any
Выберите массив столбцов по имени в потоке. В качестве второго аргумента вы можете передать необязательное имя потока. Если найдено несколько совпадений, то возвращается первое совпадение. Если для столбца нет совпадений, все выходные данные являются значением NULL . Возвращаемое значение требует функции преобразования типов (например toDate , и toString). Обращайтесь к именам столбцов, известным на этапе проектирования, по их именам. Вычисляемые входные данные не поддерживаются, но можно использовать замену параметров.
toString(byNames(['parent', 'child']))byNames(['parent']) ? stringtoLong(byNames(['income']))byNames(['income']) ? longtoBoolean(byNames(['foster']))toLong(byNames($debtCols))toString(byNames(['a Column']))toString(byNames(['a Column'], 'DeriveStream'))byNames(['orderItem']) ? (itemName as string, itemQty as integer)
byOrigin
byOrigin(<column name> : string, [<origin stream name> : string]) => any
Выбирает значение столбца по имени в исходном потоке. Вторым аргументом является имя исходного потока. Если найдено несколько совпадений, то возвращается первое совпадение. Если совпадений нет, возвращается значение NULL. Возвращаемое значение должно быть преобразовано одним из функций преобразования типов (например TO_DATE , и TO_STRING). Обращайтесь к именам столбцов, известным на этапе проектирования, по их именам. Вычисляемые входные данные не поддерживаются, но можно использовать замену параметров.
toString(byOrigin('ancestor', 'ancestorStream'))
byOrigins
byOrigins(<column names> : array, [<origin stream name> : string]) => any
Выбирает массив столбцов по имени в потоке. Второй аргумент — это поток, из которого он происходит. Если найдено несколько совпадений, то возвращается первое совпадение. Если совпадений нет, возвращается значение NULL. Возвращаемое значение должно быть преобразовано одним из функций преобразования типов (например TO_DATE , и TO_STRING). Обращайтесь к именам столбцов, известным на этапе проектирования, по их именам. Вычисляемые входные данные не поддерживаются, но можно использовать замену параметров.
toString(byOrigins(['ancestor1', 'ancestor2'], 'ancestorStream'))
byPath
byPath(<value1> : string, [<streamName> : string]) => any
Находит иерархический путь по имени в потоке. В качестве второго аргумента вы можете передать необязательное имя потока. Если такой путь не найден, возвращается NULL. Имена и пути столбцов, известные во время разработки, должны использоваться только с помощью их имени или пути точечной нотации. Вычисляемые входные данные не поддерживаются, но можно использовать замену параметров.
byPath('grandpa.parent.child') => column
byPosition
byPosition(<position> : integer) => any
Выбирает значение столбца по относительной позиции (1 на основе) в потоке. Если позиция выходит за границы допустимого диапазона, возвращает значение NULL. Возвращаемое значение должно быть преобразовано одним из функций преобразования типов (например TO_DATE , или TO_STRING). Вычисляемые входные данные не поддерживаются, но можно использовать замену параметров.
toString(byPosition(1))toDecimal(byPosition(2), 10, 2)toBoolean(byName(4))toString(byName($colName))toString(byPosition(1234))
C
case
case(<condition> : boolean, <true_expression> : any, <false_expression> : any, ...) => any
В зависимости от переменных условий case функция применяет одно значение или другое. Если количество входных данных чётное, второй элемент по умолчанию принимает значение NULL для последнего условия.
case(10 + 20 == 30, 'dumbo', 'gumbo') -> 'dumbo'case(10 + 20 == 25, 'bojjus', 'do' < 'go', 'gunchus') -> 'gunchus'isNull(case(10 + 20 == 25, 'bojjus', 'do' > 'go', 'gunchus')) -> truecase(10 + 20 == 25, 'bojjus', 'do' > 'go', 'gunchus', 'dumbo') -> 'dumbo'
cbrt
cbrt(<value1> : number) => double
Вычисляет кубический корень числа.
cbrt(8) -> 2.0
ceil
ceil(<value1> : number) => number
Возвращает наименьшее целое число, не меньшее заданного числа.
ceil(-0.1) -> 0
char
char(<Input> : number) => string
Возвращает символ ASCII, представленный входным номером. Если число больше 256, результат эквивалентен символу (число % 256).
char(65) -> 'A'char(97) -> 'a'
coalesce
coalesce(<value1> : any, ...) => any
Возвращает из набора входных данных первое значение, не равное NULL. Все входные данные должны быть одного типа.
coalesce(10, 20) -> 10coalesce(toString(null), toString(null), 'dumbo', 'bo', 'go') -> 'dumbo'
collect
collect(<value1> : any) => array
Собирает все значения выражения в агрегированной группе в массив. Во время этого процесса можно собирать и преобразовывать структуры в альтернативные структуры. Число элементов равно количеству строк в этой группе и может содержать значения NULL. Количество собранных элементов должно быть небольшим.
collect(salesPerson)collect(firstName + lastName))collect(@(name = salesPerson, sales = salesAmount) )
collectUnique
collectUnique(<value1> : any) => array
Собирает все значения выражения в агрегированной группе в уникальный массив. Во время этого процесса можно собирать и преобразовывать структуры в альтернативные структуры. Число элементов равно количеству строк в этой группе и может содержать значения NULL. Количество собранных элементов должно быть небольшим.
collect(salesPerson)collect(firstName + lastName))collect(@(name = salesPerson, sales = salesAmount) )
columnNames
columnNames(
<значение1>columnNames( : string, i><значение1> : boolean) => array
Получает имена всех выходных столбцов для потока. В качестве первого аргумента вы можете передать необязательное имя потока. Второй аргумент также является необязательным и по умолчанию имеет значение false. При установке второго аргумента true()фабрика данных возвращает только столбцы, которые смещение схемы смещением схемы.
columnNames()
columnNames('DeriveStream')
columnNames('DeriveStream', true())
columnNames('', true())
columns
columns([<stream name> : string]) => any
Получает значения всех выходных столбцов для потока. В качестве второго аргумента вы можете передать необязательное имя потока.
columns()
columns('DeriveStream')
compare
compare(<value1> : any, <value2> : any) => integer
Сравнивает два значения одного типа. Возвращает отрицательное целое число, если значение1 < значение2, 0, если значение1 == значение2, и положительное значение, если значение1 > значение2.
(compare(12, 24) < 1) -> true
(compare('dumbo', 'dum') > 0) -> true
concat
concat(<this> : string, <that> : string, ...) => string
Объединяет переменное количество строк. То же, что и + оператор со строками.
concat('dataflow', 'is', 'awesome') -> 'dataflowisawesome'
'dataflow' + 'is' + 'awesome' -> 'dataflowisawesome'
isNull('sql' + null) -> true
concatWS
concatWS(<separator> : string, <this> : string, <that> : string, ...) => string
Объединяет переменное количество строк с использованием разделителя. Первый параметр — это разделитель.
concatWS(' ', 'dataflow', 'is', 'awesome') -> 'dataflow is awesome'
isNull(concatWS(null, 'dataflow', 'is', 'awesome')) -> true
concatWS(' is ', 'dataflow', 'awesome') -> 'dataflow is awesome'
contains
contains(<value1> : array, <value2> : unaryfunction) => boolean
Возвращает, true если любой элемент в предоставленном массиве вычисляется как true в предоставленном предикате. Функция Th contains ожидает ссылку на один элемент в функции предиката как #item.
contains([1, 2, 3, 4], #item == 3) -> true
contains([1, 2, 3, 4], #item > 5) -> false
cos
cos(<value1> : number) => double
Вычисляет значение косинуса.
cos(10) -> -0.8390715290764524
cosh
cosh(<value1> : number) => double
Вычисляет значение гиперболического косинуса.
cosh(0) -> 1.0
count
count([<value1> : any]) => long
Возвращает совокупное количество значений. Если указан один или несколько необязательных столбцов, он игнорирует NULL значения в счетчике.
count(custId)
count(custId, custName)
count()
count(iif(isNull(custId), 1, NULL))
countAll
countAll([<value1> : any]) => long
Возвращает общее количество значений, включая значения NULL.
countAll(custId)
countAll()
countDistinct
countDistinct(<value1> : any, [<value2> : any], ...) => long
Возвращает совокупное число различных значений набора столбцов.
countDistinct(custId, custName)
countAllDistinct
countAllDistinct(<value1> : any, [<value2> : any], ...) => long
Возвращает статистическое число различных значений набора столбцов, включая значения NULL.
countAllDistinct(custId, custName)
countIf
countIf(<value1> : boolean, [<value2> : any]) => long
Возвращает общее количество значений на основе критериев. Если указан необязательный столбец, он игнорирует NULL значения в счетчике.
countIf(state == 'CA' && commission < 10000, name)
covariancePopulation
covariancePopulation(<value1> : number, <value2> : number) => double
Возвращает ковариацию по всей совокупности значений двух столбцов.
covariancePopulation(sales, profit)
covariancePopulationIf
covariancePopulationIf(<value1> : boolean, <value2> : number, <value3> : number) => double
Возвращает ковариацию выборки двух столбцов на основе критериев.
covariancePopulationIf(region == 'West', sales)
covarianceSample
covarianceSample(<value1> : number, <value2> : number) => double
Возвращает ковариацию выборки двух столбцов.
covarianceSample(sales, profit)
covarianceSampleIf
covarianceSampleIf(<value1> : boolean, <value2> : number, <value3> : number) => double
Возвращает выборочную ковариацию двух столбцов с учетом критериев.
covarianceSampleIf(region == 'West', sales, profit)
crc32
crc32(<value1> : any, ...) => long
Вычисляет хэш CRC32 набора столбцов различных примитивных типов данных при указании битовой длины, которая может быть только значениями 0(256224), , 256и 384512. Его можно использовать для вычисления отпечатка пальца для строки.
crc32(256, 'gunchus', 8.2, 'bojjus', true, toDate('2010-4-4')) -> 3630253689L
cumeDist
cumeDist() => integer
Функция cumeDist вычисляет положение значения относительно всех значений в секции. Результатом является количество строк, предшествующих или равных текущей строке в упорядоченном наборе раздела, деленное на общее количество строк в разделе окна. Все значения галстуков в упорядочении оцениваются в той же позиции.
cumeDist()
currentDate
currentDate([<value1> : string]) => date
Возвращает текущую дату начала выполнения этого задания. Можно передать необязательный часовой пояс в виде GMT, PSTUTCили America/Cayman. Локальный часовой пояс центра обработки данных или региона фабрики данных используется в качестве значения по умолчанию. Ознакомьтесь с классом SimpleDateFormat Java для доступных форматов.
currentDate() == toDate('2250-12-31') -> false
currentDate('PST') == toDate('2250-12-31') -> false
currentDate('America/New_York') == toDate('2250-12-31') -> false
currentTimestamp
currentTimestamp() => timestamp
Получает текущую метку времени при запуске задания в локальном часовом поясе.
currentTimestamp() == toTimestamp('2250-12-31 12:12:12') -> false
currentUTC
currentUTC([<value1> : string]) => timestamp
Возвращает текущую метку времени в формате UTC. Если вы хотите, чтобы текущее время интерпретировалось в другом часовом поясе, отличном от часового пояса кластера, можно передать необязательный часовой пояс в виде GMT, PSTUTCили America/Cayman. По умолчанию используется текущий часовой пояс. Ознакомьтесь с классом SimpleDateFormat Java для доступных форматов. Чтобы преобразовать время UTC в другой часовой пояс, используйте fromUTC().
currentUTC() == toTimestamp('2050-12-12 19:18:12') -> false
currentUTC() != toTimestamp('2050-12-12 19:18:12') -> true
fromUTC(currentUTC(), 'Asia/Seoul') != toTimestamp('2050-12-12 19:18:12') -> true
D
dayOfMonth
dayOfMonth(<value1> : datetime) => integer
Возвращает день месяца при указании даты.
dayOfMonth(toDate('2018-06-08')) -> 8
dayOfWeek
dayOfWeek(<value1> : datetime) => integer
Возвращает день недели при указании даты. Например, 1 — это воскресенье, 2 — понедельник, ... и 7 — суббота.
dayOfWeek(toDate('2018-06-08')) -> 6
dayOfYear
dayOfYear(<value1> : datetime) => integer
Возвращает день года для заданной даты.
dayOfYear(toDate('2016-04-09')) -> 100
days
days(<value1> : integer) => long
Длительность в миллисекундах в течение нескольких дней.
days(2) -> 172800000L
decode
decode(<Input> : any, <Charset> : string) => binary
Декодирует закодированные входные данные в строку на основе заданного набора символов. Можно использовать второй (необязательный) аргумент, чтобы указать используемый набор символов. Примеры: US-ASCII, ISO-8859-1, UTF-8 (по умолчанию), UTF-16BE, UTF-16LE, и UTF-16.
decode(array(toByte(97),toByte(98),toByte(99)), 'US-ASCII') -> abc
degrees
degrees(<value1> : number) => double
Преобразует радианы в градусы.
degrees(3.141592653589793) -> 180
denseRank
denseRank() => integer
Вычисляет ранг значения в группе значений, указанных в предложении order by окна. Результатом является единица плюс количество строк, предшествующих или равных текущей строке в упорядоченном наборе раздела. Значения не создают пробелы в последовательности. Функция denseRank работает, даже если данные не сортируются и ищут изменения значений.
denseRank()
distinct
distinct(<value1> : array) => array
Возвращает отдельный набор элементов из массива.
distinct([10, 20, 30, 10]) => [10, 20, 30]
divide
divide(<value1> : any, <value2> : any) => any
Делит пару чисел. Аналогично оператору /.
divide(20, 10) -> 2
20 / 10 -> 2
dropLeft
dropLeft(<value1> : string, <value2> : integer) => string
Удаляет столько же символов с левого конца строки. Если запрошенная операция удаления превышает длину строки, возвращается пустая строка.
dropLeft('bojjus', 2) => 'jjus'
dropLeft('cake', 10) => ''
dropRight
dropRight(<value1> : string, <value2> : integer) => string
Удаляет столько же символов с правого конца строки. Если запрошенная операция удаления превышает длину строки, возвращается пустая строка.
dropRight('bojjus', 2) => 'bojj'
dropRight('cake', 10) => ''
E
encode
encode(<Input> : string, <Charset> : string) => binary
Кодирует входные строковые данные в двоичный файл на основе charset. Второй (необязательный) аргумент можно использовать для указания используемого набора символов. Примеры: US-ASCII, ISO-8859-1, UTF-8 (по умолчанию), UTF-16BE, UTF-16LE, и UTF-16.
encode('abc', 'US-ASCII') -> array(toByte(97),toByte(98),toByte(99))
endsWith
endsWith(<string> : string, <substring to check> : string) => boolean
Проверяет, заканчивается ли строка предоставленной строкой.
endsWith('dumbo', 'mbo') -> true
equals
equals(<value1> : any, <value2> : any) => boolean
Использует оператор сравнения равно. Аналогично оператору ==.
equals(12, 24) -> false
12 == 24 -> false
'bad' == 'bad' -> true
isNull('good' == toString(null)) -> true
isNull(null == null) -> true
equalsIgnoreCase
equalsIgnoreCase(<value1> : string, <value2> : string) => boolean
Использует оператор сравнения на равенство, игнорируя регистр. Аналогично оператору <=>.
'abc'<=>'Abc' -> true
equalsIgnoreCase('abc', 'Abc') -> true
escape
escape(<string_to_escape> : string, <format> : string) => string
Экранирует строку в соответствии с форматом. Литеральные значения допустимого формата: json, xml, ecmascript, htmlи java.
except
except(<value1> : array, <value2> : array) => array
Возвращает набор отличий одного массива от другого, удаляя дубликаты.
except([10, 20, 30], [20, 40]) => [10, 30]
expr
expr(<expr> : string) => any
Приводит к выражению из строки, которая аналогична написанию этого выражения в нелитеральной форме. Его можно использовать для передачи параметров в виде строковых представлений.
expr('price * discount') => any
F
factorial
factorial(<value1> : number) => long
Вычисляет факториал числа.
factorial(5) -> 120
false
false() => boolean
Всегда возвращает значение false. Используйте функцию syntax(false()) , если столбец называется false.
(10 + 20 > 30) -> false
(10 + 20 > 30) -> false()
filter
filter(<value1> : array, <value2> : unaryfunction) => array
Фильтрует элементы массива, которые не соответствуют предоставленному предикату. Фильтр ожидает ссылку на один элемент в функции предиката как #item.
filter([1, 2, 3, 4], #item > 2) -> [3, 4]
filter(['a', 'b', 'c', 'd'], #item == 'a' || #item == 'b') -> ['a', 'b']
find
find(<value1> : array, <value2> : unaryfunction) => any
Поиск первого элемента в массиве, соответствующего условию. Он принимает функцию фильтра, где можно адресовать элемент в массиве как #item. Для глубоко вложенных карт можно ссылаться на родительские карты с помощью #item_n нотации (#item_1, #item_2...).
find([10, 20, 30], #item > 10) -> 20
find(['azure', 'data', 'factory'], length(#item) > 4) -> 'azure'
find([ @( name = 'Daniel', types = [ @(mood = 'jovial', behavior = 'terrific'), @(mood = 'grumpy', behavior = 'bad') ] ), @( name = 'Mark', types = [ @(mood = 'happy', behavior = 'awesome'), @(mood = 'calm', behavior = 'reclusive') ] ) ], contains(#item.types, #item.mood=='happy') /*Filter out the happy kid*/ )
@( name = 'Mark', types = [ @(mood = 'happy', behavior = 'awesome'), @(mood = 'calm', behavior = 'reclusive') ] )
first
first(<value1> : any, [<value2> : boolean]) => any
Возвращает первое значение группы столбцов. Если второй параметр ignoreNulls опущен, фабрика данных принимает значение false.
first(sales)
first(sales, false)
flatten
flatten(<array> : array, <value2> : array ..., <value2> : boolean) => array
Сплющивает массив или массивы в один массив. Массивы атомарных элементов возвращаются без изменений. Последний аргумент является необязательным, и его значение по умолчанию false для рекурсивного сведения при наличии более одного уровня вложенности.
flatten([['bojjus', 'girl'], ['gunchus', 'boy']]) => ['bojjus', 'girl', 'gunchus', 'boy']
flatten([[['bojjus', 'gunchus']]] , true) => ['bojjus', 'gunchus']
floor
floor(<value1> : number) => number
Возвращает наибольшее целое число, не превышающее заданное число.
floor(-0.1) -> -1
fromBase64
fromBase64(<value1> : string, <encoding type> : string) => string
Декодирует определенную строку в кодировке Base64. При необходимости можно передать тип кодировки.
fromBase64('Z3VuY2h1cw==') -> 'gunchus'
fromBase64('SGVsbG8gV29ybGQ=', 'Windows-1252') -> 'Hello World'
fromUTC
fromUTC(<value1> : timestamp, [<value2> : string]) => timestamp
Преобразуется в временную метку по UTC. При необходимости можно передать часовой пояс в виде GMT, PSTUTCили America/Cayman. По умолчанию используется текущий часовой пояс. Ознакомьтесь с классом SimpleDateFormat Java для доступных форматов.
fromUTC(currentTimestamp()) == toTimestamp('2050-12-12 19:18:12') -> false
fromUTC(currentTimestamp(), 'Asia/Seoul') != toTimestamp('2050-12-12 19:18:12') -> true
G
greater
greater(<value1> : any, <value2> : any) => boolean
Использует более широкий оператор сравнения. Аналогично оператору >.
greater(12, 24) -> false
('dumbo' > 'dum') -> true
(toTimestamp('2019-02-05 08:21:34.890', 'yyyy-MM-dd HH:mm:ss.SSS') > toTimestamp('2019-02-03 05:19:28.871', 'yyyy-MM-dd HH:mm:ss.SSS')) -> true
greaterOrEqual
greaterOrEqual(<value1> : any, <value2> : any) => boolean
Использует сравнение больше или равно оператору. Аналогично оператору >=.
greaterOrEqual(12, 12) -> true
('dumbo' >= 'dum') -> true
greatest
greatest(<value1> : any, ...) => any
Возвращает наибольшее значение в списке значений в качестве входных данных, пропуская значения NULL. Возвращает значение null , если все входные данные имеют значение NULL.
greatest(10, 30, 15, 20) -> 30
greatest(10, toInteger(null), 20) -> 20
greatest(toDate('2010-12-12'), toDate('2011-12-12'), toDate('2000-12-12')) -> toDate('2011-12-12')
greatest(toTimestamp('2019-02-03 05:19:28.871', 'yyyy-MM-dd HH:mm:ss.SSS'), toTimestamp('2019-02-05 08:21:34.890', 'yyyy-MM-dd HH:mm:ss.SSS')) -> toTimestamp('2019-02-05 08:21:34.890', 'yyyy-MM-dd HH:mm:ss.SSS')
H
hasColumn
hasColumn(<column name> : string, [<stream name> : string]) => boolean
Проверяет значение столбца по имени в потоке. В качестве второго аргумента вы можете передать необязательное имя потока. Обращайтесь к именам столбцов, известным на этапе проектирования, по их именам. Вычисляемые входные данные не поддерживаются, но можно использовать замену параметров.
hasColumn('parent')
hasError
hasError([<value1> : string]) => boolean
Проверяет, помечен ли актив с предоставленным идентификатором как ошибка.
Examples
hasError('assert1')
hasError('assert2')
hasPath
hasPath(<value1> : string, [<streamName> : string]) => boolean
Проверяет, существует ли определенный иерархический путь, по имени в потоке. В качестве второго аргумента вы можете передать необязательное имя потока. Имена и пути столбцов, известные во время разработки, должны использоваться только с помощью их имени или пути точечной нотации. Вычисляемые входные данные не поддерживаются, но можно использовать замену параметров.
hasPath('grandpa.parent.child') => boolean
hex
hex(<value1>: binary) => string
Возвращает шестнадцатеричное представление двоичного значения
hex(toBinary([toByte(0x1f), toByte(0xad), toByte(0xbe)])) -> '1fadbe'
hour
hour(<value1> : timestamp, [<value2> : string]) => integer
Возвращает значение часа метки времени. Можно передать необязательный часовой пояс в виде GMT, PSTUTCили America/Cayman. Локальный часовой пояс используется в качестве значения по умолчанию. Ознакомьтесь с классом SimpleDateFormat Java для доступных форматов.
hour(toTimestamp('2009-07-30 12:58:59')) -> 12
hour(toTimestamp('2009-07-30 12:58:59'), 'PST') -> 12
hours
hours(<value1> : integer) => long
Возвращает длительность в миллисекундах для заданного количества часов.
hours(2) -> 7200000L
I
iif
iif(<condition> : boolean, <true_expression> : any, [<false_expression> : any]) => any
Применяет одно или другое значение на основе условия. Если другое не указано, значение считается NULL. Оба значения должны быть совместимыми (например, числовыми и строковыми).
iif(10 + 20 == 30, 'dumbo', 'gumbo') -> 'dumbo'
iif(10 > 30, 'dumbo', 'gumbo') -> 'gumbo'
iif(month(toDate('2018-12-01')) == 12, 345.12, 102.67) -> 345.12
iifNull
iifNull(<value1> : any, [<value2> : any], ...) => any
Возвращает первый не null-элемент при указании двух или более входных данных. Эта функция эквивалентна coalesce функции.
iifNull(10, 20) -> 10
iifNull(null, 20, 40) -> 20
iifNull('azure', 'data', 'factory') -> 'azure'
iifNull(null, 'data', 'factory') -> 'data'
in
in(<array of items> : array, <item to find> : any) => boolean
Проверяет, находится ли элемент в массиве.
in([10, 20, 30], 10) -> true
in(['good', 'kid'], 'bad') -> false
initCap
initCap(<value1> : string) => string
Преобразует первую букву каждого слова в верхний регистр. Слова идентифицируются по разделению пробелами.
initCap('cool iceCREAM') -> 'Cool Icecream'
instr
instr(<string> : string, <substring to find> : string) => integer
Находит позицию (1 на основе) подстроки в строке. Если значение не найдено, возвращается 0.
instr('dumbo', 'mbo') -> 3
instr('microsoft', 'o') -> 5
instr('good', 'bad') -> 0
intersect
intersect(<value1> : array, <value2> : array) => array
Возвращает набор пересечений отдельных элементов из двух массивов.
intersect([10, 20, 30], [20, 40]) => [20]
isBitSet
isBitSet (<value1> : array, <value2>:integer ) => boolean
Проверяет, задана ли битовая позиция в этом битовом наборе.
isBitSet(toBitSet([10, 32, 98]), 10) => true
isBoolean
isBoolean(<value1>: string) => boolean
Проверяет, является ли строковое значение логическим значением в соответствии с правилами toBoolean().
isBoolean('true') -> true
isBoolean('no') -> true
isBoolean('microsoft') -> false
isByte
isByte(<value1> : string) => boolean
Проверяет, является ли строковое значение байтовым значением при указании необязательного формата в соответствии с правилами toByte().
isByte('123') -> true
isByte('chocolate') -> false
isDate
isDate (<value1> : string, [<format>: string]) => boolean
Проверяет, является ли строка входной даты датой с помощью необязательного формата входной даты. Ознакомьтесь с классом SimpleDateFormat Java для доступных форматов. Если формат входной даты опущен, формат по умолчанию равен yyyy-[M]M-[d]d. Допустимые форматы.:[ yyyy, yyyy-[M]M, yyyy-[M]M-[d]d, yyyy-[M]M-[d]dT* ]
isDate('2012-8-18') -> true
isDate('12/18--234234' -> 'MM/dd/yyyy') -> false
isDecimal
isDecimal (<value1> : string) => boolean
Проверяет, является ли строковое значение десятичным значением при указании необязательного формата в соответствии с правилами toDecimal().
isDecimal('123.45') -> true
isDecimal('12/12/2000') -> false
isDelete
isDelete([<value1> : integer]) => boolean
Проверяет, следует ли удалить строку. Для преобразований, которые принимают несколько входных потоков, можно передать индекс потока, начиная с 1. Индекс потока должен быть либо 1 , либо 2, а значение по умолчанию — 1.
isDelete()
isDelete(1)
isDistinct
isDistinct(<value1> : any , <value1> : any) => boolean
Определяет, является ли столбец или набор столбцов уникальным. Он не подсчитывает значение NULL в качестве отдельного значения.
isDistinct(custId, custName) => boolean
isDouble
isDouble (<value1> : string, [<format>: string]) => boolean
Проверяет, является ли строковое значение двойным значением при указании необязательного формата в соответствии с правилами toDouble().
isDouble('123') -> true
isDouble('$123.45' -> '$###.00') -> true
isDouble('icecream') -> false
isError
isError([<value1> : integer]) => boolean
Проверяет, помечена ли строка как ошибка. Для преобразований, которые принимают более одного входного потока, вы можете передать индекс потока, начиная с 1. Индекс потока должен иметь значение 1 или 2 значение 1по умолчанию.
isError()
isError(1)
isFloat
isFloat (<value1> : string, [<format>: string]) => boolean
Проверяет, является ли строковое значение значением с плавающей запятой при указании необязательного формата в соответствии с правилами toFloat().
isFloat('123') -> true
isFloat('$123.45' -> '$###.00') -> true
isFloat('icecream') -> false
isIgnore
isIgnore([<value1> : integer]) => boolean
Проверяет, следует ли игнорировать строку. Для преобразований, принимающих несколько входных потоков, можно передать индекс потока (индекс, начинающийся с 1). Индекс потока должен быть либо 1 , либо 2, а значение по умолчанию — 1.
isIgnore()
isIgnore(1)
isInsert
isInsert([<value1> : integer]) => boolean
Проверяет, помечена ли строка для вставки. Для преобразований, принимающих несколько входных потоков, можно передать индекс потока, начиная с 1. Индекс потока должен быть либо 1 , либо 2, а значение по умолчанию — 1.
isInsert()
isInsert(1)
isInteger
isInteger (<value1> : string, [<format>: string]) => boolean
Проверяет, является ли строковое значение целым значением при указании необязательного формата в соответствии с правилами toInteger().
isInteger('123') -> true
isInteger('$123' -> '$###') -> true
isInteger('microsoft') -> false
isLong
isLong (<value1> : string, [<format>: string]) => boolean
Проверяет, является ли строковое значение длинным, если задан необязательный формат в соответствии с правилами toLong().
isLong('123') -> true
isLong('$123' -> '$###') -> true
isLong('gunchus') -> false
isMatch
isMatch([<value1> : integer]) => boolean
Проверяет соответствие строки при поиске. Для преобразований, принимающих несколько входных потоков, можно передать индекс потока, начиная с 1. Индекс потока должен быть либо 1 , либо 2, а значение по умолчанию — 1.
isMatch()
isMatch(1)
isNan
isNan (<value1> : integral) => boolean
Проверяет, не является ли значение числом.
isNan(10.2) => false
isNull
isNull(<value1> : any) => boolean
Проверяет, является ли значение NULL.
isNull(NULL()) -> true
isNull('') -> false
isShort
isShort (<value1> : string, [<format>: string]) => boolean
Проверяет, является ли строковое значение коротким значением при указании необязательного формата в соответствии с правилами toShort().
isShort('123') -> true
isShort('$123' -> '$###') -> true
isShort('microsoft') -> false
isTimestamp
isTimestamp (<value1> : string, [<format>: string]) => boolean
Проверяет, является ли строка входной даты меткой времени с помощью необязательного формата метки времени ввода. Ознакомьтесь с классом SimpleDateFormat Java для доступных форматов. Если метка времени опущена, используется шаблон yyyy-[M]M-[d]d hh:mm:ss[.f...] по умолчанию. Можно передать необязательный часовой пояс в виде GMT, PSTUTCили America/Cayman. Функция timestamp поддерживает точность до миллисекунды со значением 999. Ознакомьтесь с классом SimpleDateFormat Java для доступных форматов.
isTimestamp('2016-12-31 00:12:00') -> true
isTimestamp('2016-12-31T00:12:00' -> 'yyyy-MM-dd\\'T\\'HH:mm:ss' -> 'PST') -> true
isTimestamp('2012-8222.18') -> false
isUpdate
isUpdate([<value1> : integer]) => boolean
Проверяет, помечена ли строка для обновления. Для преобразований, принимающих несколько входных потоков, можно передать индекс потока, начиная с 1. Индекс потока должен быть либо 1 , либо 2, а значение по умолчанию — 1.
isUpdate()
isUpdate(1)
isUpsert
isUpsert([<value1> : integer]) => boolean
Проверяет, помечена ли строка для вставки. Для преобразований, принимающих несколько входных потоков, можно передавать индекс потока, начиная с 1. Индекс потока должен быть либо 1 , либо 2, а значение по умолчанию — 1.
isUpsert()
isUpsert(1)
J
jaroWinkler
jaroWinkler(<value1> : string, <value2> : string) => double
Вычисляет расстояние Джаро — Винклера между двумя строками.
jaroWinkler('frog', 'frog') => 1.0
K
keyValues
keyValues(<value1> : array, <value2> : array) => map
Создает сопоставление ключей или значений. Первый параметр является массивом ключей, а второй — массивом значений. Оба массива должны иметь одинаковую длину.
keyValues(['bojjus', 'appa'], ['gunchus', 'ammi']) => ['bojjus' -> 'gunchus', 'appa' -> 'ammi']
kurtosis
kurtosis(<value1> : number) => double
Возвращает эксцесс столбца.
kurtosis(sales)
kurtosisIf
kurtosisIf(<value1> : boolean, <value2> : number) => double
Получает куртоз столбца на основе критериев.
kurtosisIf(region == 'West', sales)
L
lag
lag(<value> : any, [<number of rows to look before> : number], [<default value> : any]) => any
Возвращает значение первого параметра, вычисляемого n строк до текущей строки. Второй параметр — это количество строк для обратного поиска, и значение по умолчанию 1. Если не так много строк, возвращается значение NULL, если не указано значение по умолчанию.
lag(amount, 2)
lag(amount, 2000, 100)
last
last(<value1> : any, [<value2> : boolean]) => any
Возвращает последнее значение группы столбцов. Если второй параметр ignoreNulls опущен, предполагается, что значение false.
last(sales)
last(sales, false)
lastDayOfMonth
lastDayOfMonth(<value1> : datetime) => date
Возвращает последнюю дату месяца при указании даты.
lastDayOfMonth(toDate('2009-01-12')) -> toDate('2009-01-31')
lead
lead(<value> : any, [<number of rows to look after> : number], [<default value> : any]) => any
Возвращает значение первого параметра, вычисляемого через n строки после текущей строки. Второй параметр — это число строк, которые нужно просмотреть, а значение по умолчанию — 1. Если не так много строк, возвращается значение NULL, если не указано значение по умолчанию.
lead(amount, 2)
lead(amount, 2000, 100)
least
least(<value1> : any, ...) => any
Использует сравнение меньше или равно оператору. Аналогично оператору <=.
least(10, 30, 15, 20) -> 10
least(toDate('2010-12-12'), toDate('2011-12-12'), toDate('2000-12-12')) -> toDate('2000-12-12')
left
left(<string to subset> : string, <number of characters> : integral) => string
Извлекает подстроку, начинающуюся с индекса 1 , с числом символов. То же, что и SUBSTRING(str, 1, n).
left('bojjus', 2) -> 'bo'
left('bojjus', 20) -> 'bojjus'
length
length(<value1> : string) => integer
Возвращает длину строки.
length('dumbo') -> 5
lesser
lesser(<value1> : any, <value2> : any) => boolean
Использует оператор сравнения "меньше чем". Аналогично оператору <.
lesser(12, 24) -> true
('abcd' < 'abc') -> false
(toTimestamp('2019-02-03 05:19:28.871', 'yyyy-MM-dd HH:mm:ss.SSS') < toTimestamp('2019-02-05 08:21:34.890', 'yyyy-MM-dd HH:mm:ss.SSS')) -> true
lesserOrEqual
lesserOrEqual(<value1> : any, <value2> : any) => boolean
Использует сравнение меньше или равно оператору. Аналогично оператору <=.
lesserOrEqual(12, 12) -> true
('dumbo' <= 'dum') -> false
levenshtein
levenshtein(<from string> : string, <to string> : string) => integer
Вычисляет расстояние Левенштейна между двумя строками.
levenshtein('boys', 'girls') -> 4
like
like(<string> : string, <pattern match> : string) => boolean
Использует строковый шаблон, соответствующий буквально. Исключения представляют собой следующие специальные символы: _ соответствует любому символу в входных данных (аналогично .*posix регулярным выражениям).
% соответствует нулю или нескольким символам входных данных (аналогично .*posix регулярным выражениям).
Escape-символом является ''. Если escape-символ предшествует специальному символу или другому escape-символу, следующий знак сопоставляется буквально. Недопустимо экранировать любые другие знаки.
like('icecream', 'ice%') -> true
locate
locate(<substring to find> : string, <string> : string, [<from index - 1-based> : integral]) => integer
Находит позицию (1 на основе) подстроки в строке, начиная с определенной позиции. Если позиция опущена, она начинается с начала строки. Если значение не найдено, возвращается 0.
locate('mbo', 'dumbo') -> 3
locate('o', 'microsoft', 6) -> 7
locate('bad', 'good') -> 0
log
log(<value1> : number, [<value2> : number]) => double
Вычисляет значение логарифма. При использовании можно указать необязательное основание или число Эйлера.
log(100, 10) -> 2
log10
log10(<value1> : number) => double
Вычисляет значение логарифма по основанию 10.
log10(100) -> 2
lookup
lookup(key, key2, ...) => complex[]
Находит первую строку из кэшированного источника данных с помощью заданных ключей, которые соответствуют ключам из кэшированного источника данных.
cacheSink#lookup(movieId)
lower
lower(<value1> : string) => string
Преобразовывает строку в нижний регистр.
lower('GunChus') -> 'gunchus'
lpad
lpad(<string to pad> : string, <final padded length> : integral, <padding> : string) => string
Левая панель заполняет строку предоставленным заполнением, пока строка не имеет определенной длины. Если строка равна или больше длины, строка обрезается до длины.
lpad('dumbo', 10, '-') -> '-----dumbo'
lpad('dumbo', 4, '-') -> 'dumb'
ltrim
ltrim(<string to trim> : string, [<trim characters> : string]) => string
Обрезает строку начальных знаков слева. Если второй параметр не указан, он обрезает пробелы. В противном случае он обрезает любой символ, указанный во втором параметре.
ltrim(' dumbo ') -> 'dumbo '
ltrim('!--!du!mbo!', '-!') -> 'du!mbo!'
M
map
map(<value1> : array, <value2> : unaryfunction) => any
Сопоставляет каждый элемент массива с новым элементом с помощью предоставленного выражения. Функция map ожидает ссылку на один элемент в функции выражения как #item.
map([1, 2, 3, 4], #item + 2) -> [3, 4, 5, 6]
map(['a', 'b', 'c', 'd'], #item + '_processed') -> ['a_processed', 'b_processed', 'c_processed', 'd_processed']
mapAssociation
mapAssociation(<value1> : map, <value2> : binaryFunction) => array
Преобразует сопоставление путем связывания ключей с новыми значениями. Возвращает массив. Она принимает функцию сопоставления, в которой можно обратиться к элементу как #key и текущему значению #value.
mapAssociation(['bojjus' -> 'gunchus', 'appa' -> 'ammi'], @(key = #key, value = #value)) => [@(key = 'bojjus', value = 'gunchus'), @(key = 'appa', value = 'ammi')]
mapIf
mapIf (<value1> : array, <value2> : binaryfunction, <value3>: binaryFunction) => any
Условно сопоставляет массив с другим массивом той же или меньшей длины. Значения могут иметь любой тип данных, в том числе structTypes. Он принимает функцию сопоставления, где можно адресировать элемент в массиве как #item и текущий индекс как #index. Для глубоко вложенных карт можно ссылаться на родительские карты с помощью нотации ''''#item_[n] (#item_1, #index_1').
mapIf([10, 20, 30], #item > 10, #item + 5) -> [25, 35]
mapIf(['icecream', 'cake', 'soda'], length(#item) > 4, upper(#item)) -> ['ICECREAM', 'CAKE']
mapIndex
mapIndex(<value1> : array, <value2> : binaryfunction) => any
Сопоставляет каждый элемент массива с новым элементом с помощью предоставленного выражения. Функция map ожидает ссылку на один элемент в функции выражения как #item и ссылку на индекс элемента как #index.
mapIndex([1, 2, 3, 4], #item + 2 + #index) -> [4, 6, 8, 10]
mapLoop
mapLoop(<value1> : integer, <value2> : unaryfunction) => any
Проходит в цикле от 1 до заданной длины для создания массива этой длины. Он принимает функцию сопоставления, где можно адресировать индекс в массиве как #index. Для глубоко вложенных карт можно ссылаться на родительские карты с помощью #index_n нотации (#index_1, #index_2).
mapLoop(3, #index * 10) -> [10, 20, 30]
max
max(<value1> : any) => any
Возвращает максимальное значение столбца.
max(sales)
maxIf
maxIf(<value1> : boolean, <value2> : any) => any
Возвращает максимальное значение столбца на основе критериев.
maxIf(region == 'West', sales)
md5
md5(<value1> : any, ...) => string
Вычисляет дайджест MD5 набора столбцов различных примитивных типов данных и возвращает шестнадцатеричную строку 32 символов. Его можно использовать для вычисления отпечатка пальца для строки.
md5(5, 'gunchus', 8.2, 'bojjus', true, toDate('2010-4-4')) -> '4ce8a880bd621a1ffad0bca905e1bc5a'
mean
mean(<value1> : number) => number
Возвращает среднее значение столбца. То же, что и AVG.
mean(sales)
meanIf
meanIf(<value1> : boolean, <value2> : number) => number
Получает среднее значение значений столбца на основе критериев. То же, что и avgIf.
meanIf(region == 'West', sales)
millisecond
millisecond(<value1> : timestamp, [<value2> : string]) => integer
Возвращает значение миллисекунды даты. Можно передать необязательный часовой пояс в виде GMT, PSTUTCили America/Cayman. Локальный часовой пояс используется в качестве значения по умолчанию. Ознакомьтесь с классом SimpleDateFormat Java для доступных форматов.
millisecond(toTimestamp('2009-07-30 12:58:59.871', 'yyyy-MM-dd HH:mm:ss.SSS')) -> 871
milliseconds
milliseconds(<value1> : integer) => long
Возвращает длительность в миллисекундах для количества миллисекунд.
milliseconds(2) -> 2L
min
min(<value1> : any) => any
Возвращает минимальное значение столбца.
min(sales)
minIf
minIf(<value1> : boolean, <value2> : any) => any
Возвращает минимальное значение столбца на основе условий.
minIf(region == 'West', sales)
minus
minus(<value1> : any, <value2> : any) => any
Вычитает числа. Вычитает количество дней из даты. Вычитает продолжительность из метки времени. Вычитает две метки времени, чтобы получить разницу в миллисекундах. Аналогично оператору -.
minus(20, 10) -> 10
20 - 10 -> 10
minus(toDate('2012-12-15'), 3) -> toDate('2012-12-12')
toDate('2012-12-15') - 3 -> toDate('2012-12-12')
toTimestamp('2019-02-03 05:19:28.871', 'yyyy-MM-dd HH:mm:ss.SSS') + (days(1) + hours(2) - seconds(10)) -> toTimestamp('2019-02-04 07:19:18.871', 'yyyy-MM-dd HH:mm:ss.SSS')
toTimestamp('2019-02-03 05:21:34.851', 'yyyy-MM-dd HH:mm:ss.SSS') - toTimestamp('2019-02-03 05:21:36.923', 'yyyy-MM-dd HH:mm:ss.SSS') -> -2072
minute
minute(<value1> : timestamp, [<value2> : string]) => integer
Возвращает значение минуты метки времени. Можно передать необязательный часовой пояс в виде GMT, PSTUTCили America/Cayman. Локальный часовой пояс используется в качестве значения по умолчанию. Ознакомьтесь с классом SimpleDateFormat Java для доступных форматов.
minute(toTimestamp('2009-07-30 12:58:59')) -> 58
minute(toTimestamp('2009-07-30 12:58:59'), 'PST') -> 58
minutes
minutes(<value1> : integer) => long
Получает длительность в миллисекундах для заданного количества минут.
minutes(2) -> 120000L
mlookup
mlookup(key, key2, ...) => complex[]
Выполняет поиск всех соответствующих строк из кэшированного приемника с помощью указанных ключей, соответствующих ключам из кэшированного приемника.
cacheSink#mlookup(movieId)
mod
mod(<value1> : any, <value2> : any) => any
Получает модуль двух чисел. Аналогично оператору %.
mod(20, 8) -> 4
20 % 8 -> 4
month
month(<value1> : datetime) => integer
Получает значение месяца из отметки даты или времени.
month(toDate('2012-8-8')) -> 8
monthsBetween
monthsBetween(<from date/timestamp> : datetime, <to date/timestamp> : datetime, [<roundoff> : boolean], [<time zone> : string]) => double
Возвращает количество месяцев между двумя датами. Результат вычисления можно округлить. Можно передать необязательный часовой пояс в виде GMT, PSTUTCили America/Cayman. Локальный часовой пояс используется в качестве значения по умолчанию. Ознакомьтесь с классом SimpleDateFormat Java для доступных форматов.
monthsBetween(toTimestamp('1997-02-28 10:30:00'), toDate('1996-10-30')) -> 3.94959677
multiply
multiply(<value1> : any, <value2> : any) => any
Умножает пару чисел. Аналогично оператору *.
multiply(20, 10) -> 200
20 * 10 -> 200
N
negate
negate(<value1> : number) => number
Инвертирует число. Преобразовывает положительные числа в отрицательные и наоборот.
negate(13) -> -13
nextSequence
nextSequence() => long
Возвращает следующую уникальную последовательность. Номер является последовательным только в пределах раздела и имеет префикс идентификатора раздела.
nextSequence() == 12313112 -> false
normalize
normalize(<String to normalize> : string) => string
Нормализует строковое значение для разделения символов Юникода с акцентами.
regexReplace(normalize('bo²s'), `\p{M}`, '') -> 'boys'
not
not(<value1> : boolean) => boolean
Использует оператор логического отрицания.
not(true) -> false
not(10 == 20) -> true
notEquals
notEquals(<value1> : any, <value2> : any) => boolean
Использует оператор сравнения, не равный. Аналогично оператору !=.
12 != 24 -> true
'bojjus' != 'bo' + 'jjus' -> false
nTile
nTile([<value1> : integer]) => integer
Функция nTile делит строки для каждого раздела окна на n корзины, начиная от 1 до не более чем n. Значения корзин различаются не более чем 1. Если количество строк в разделе не делится поровну на количество сегментов, то остальные значения распределяются по одному на сегмент, начиная с первого. Функция nTile полезна для расчета tertiles, квартилей, децилей и других общих сводных статистических данных. Функция вычисляет две переменные во время инициализации. Размер обычного ведра увеличен на один дополнительный ряд. Обе переменные зависят от размера текущего раздела. В процессе вычисления функция отслеживает текущий номер строки, текущий номер контейнера и номер строки, в котором изменяется контейнер (bucketThreshold). Когда текущий номер строки достигает порогового значения контейнера, значение контейнера увеличивается на один. Пороговое значение увеличивается на размер контейнера (плюс один дополнительный, если текущий контейнер заполнен).
nTile()
nTile(numOfBuckets)
null
null() => null
NULL Возвращает значение. Используйте функцию syntax(null()) , если столбец называется null. Любая операция, использующая значение NULL, приводит к значению NULL .
isNull('dumbo' + `null`) -> true
isNull(10 * `null`) -> true
isNull('') -> false
isNull(10 + 20) -> false
isNull(10/0) -> true
O
or
or(<value1> : boolean, <value2> : boolean) => boolean
Использует логический OR оператор. То же, что и ||.
or(true, false) -> true
true || false -> true
originColumns
originColumns(<streamName> : string) => any
Возвращает все выходные столбцы для исходного потока, в котором они были созданы. Необходимо обернуть в другую функцию.
array(toString(originColumns('source1')))
output
output() => any
Возвращает первую строку результатов из приемника данных кэша.
cacheSink#output()
outputs
output() => any
Возвращает весь выходной набор строк результатов приемника кэша.
cacheSink#outputs()
P
partitionId
partitionId() => integer
Возвращает текущий идентификатор секции, в который входит входная строка.
partitionId()
pMod
pMod(<value1> : any, <value2> : any) => any
Возвращает положительный модуль пары чисел.
pmod(-20, 8) -> 4
power
power(<value1> : number, <value2> : number) => double
Возводит одно число в степень другого.
power(10, 2) -> 100
R
radians
radians(<value1> : number) => double
Преобразует градусы в радианы.
radians(180) => 3.141592653589793
random
random(<value1> : integral) => double
Возвращает случайное число при указании начального значения в пределах раздела. Начальное значение должно быть фиксированным и используется вместе с идентификатором раздела для генерации случайных значений в заданном диапазоне (0.0-1.0).
random(1) == 1 -> false
rank
rank() => integer
Вычисляет ранг значения в группе значений, указанных в предложении order by окна. Результатом является единица плюс количество строк, предшествующих или равных текущей строке в упорядоченном наборе раздела. Значения создают пробелы в последовательности. Функция rank работает, даже если данные не сортируются и ищут изменения значений.
rank()
reassociate
reassociate(<value1> : map, <value2> : binaryFunction) => map
Преобразует сопоставление путем связывания ключей с новыми значениями. Она принимает функцию сопоставления, в которой можно обратиться к элементу как #key и текущему значению #value.
reassociate(['fruit' -> 'apple', 'vegetable' -> 'tomato'], substring(#key, 1, 1) + substring(#value, 1, 1)) => ['fruit' -> 'fa', 'vegetable' -> 'vt']
reduce
reduce(<value1> : array, <value2> : any, <value3> : binaryfunction, <value4> : unaryfunction) => any
Накапливает элементы в массиве. Функция reduce ожидает ссылку на накопительный элемент и один элемент в первой функции выражения как #acc и #item. Ожидается, что #result результирующее значение будет использоваться во второй функции выражения.
toString(reduce(['1', '2', '3', '4'], '0', #acc + #item, #result)) -> '01234'
regexExtract
regexExtract(<string> : string, <regex to find> : string, [<match group 1-based index> : integral]) => string
Извлекает соответствующую подстроку для заданного шаблона regex. Последний параметр определяет группу соответствия и по умолчанию принимает значение 1, если параметр опущен. Используется <regex> для сопоставления строки без экранирования. Индекс 0 возвращает все совпадения. Без сопоставленных групп индекс 1 и выше не возвращают никаких результатов.
regexExtract('Cost is between 600 and 800 dollars', '(\\d+) and (\\d+)', 2) -> '800'
regexExtract('Cost is between 600 and 800 dollars', `(\d+) and (\d+)`, 2) -> '800'
regexMatch
regexMatch(<string> : string, <regex to match> : string) => boolean
Проверяет, соответствует ли строка заданному шаблону регулярного выражения. Используйте <regex> для сопоставления строки без экранирования.
regexMatch('200.50', '(\\d+).(\\d+)') -> true
regexMatch('200.50', `(\d+).(\d+)`) -> true
regexReplace
regexReplace(<string> : string, <regex to find> : string, <substring to replace> : string) => string
Заменяет все вхождения шаблона regex другой подстрокой в конкретной строке. Используйте <regex>, чтобы сопоставить строку без необходимости экранирования.
regexReplace('100 and 200', '(\\d+)', 'bojjus') -> 'bojjus and bojjus'
regexReplace('100 and 200', `(\d+)`, 'gunchus') -> 'gunchus and gunchus'
regexSplit
regexSplit(<string to split> : string, <regex expression> : string) => array
Разбивает строку по разделителю на основе регулярного выражения и возвращает массив строк.
regexSplit('bojjusAgunchusBdumbo', `[CAB]`) -> ['bojjus', 'gunchus', 'dumbo']
regexSplit('bojjusAgunchusBdumboC', `[CAB]`) -> ['bojjus', 'gunchus', 'dumbo', '']
(regexSplit('bojjusAgunchusBdumboC', `[CAB]`)[1]) -> 'bojjus'
isNull(regexSplit('bojjusAgunchusBdumboC', `[CAB]`)[20]) -> true
replace
replace(<string> : string, <substring to find> : string, [<substring to replace> : string]) => string
Заменяет все вхождения одной подстроки на другую в указанной строке. Если последний параметр опущен, по умолчанию используется пустая строка.
replace('doggie dog', 'dog', 'cat') -> 'catgie cat'
replace('doggie dog', 'dog', '') -> 'gie '
replace('doggie dog', 'dog') -> 'gie '
reverse
reverse(<value1> : string) => string
Обращает порядок строки.
reverse('gunchus') -> 'suhcnug'
right
right(<string to subset> : string, <number of characters> : integral) => string
Извлекает подстроку с рядом символов справа. То же, что и SUBSTRING(str, LENGTH(str) - n, n).
right('bojjus', 2) -> 'us'
right('bojjus', 20) -> 'bojjus'
rlike
rlike(<string> : string, <pattern match> : string) => boolean
Проверяет, соответствует ли строка заданному шаблону регулярного выражения.
rlike('200.50', `(\d+).(\d+)`) -> true
rlike('bogus', `M[0-9]+.*`) -> false
round
round(<number> : number, [<scale to round> : number], [<rounding option> : integral]) => double
Округляет число, если задано необязательное масштабирование и необязательный режим округления. Если шкала опущена, по умолчанию используется 0значение . Если режим опущен, он по умолчанию имеет значение ROUND_HALF_UP(5). К значениям округления относятся:
ROUND_UP: Режим округления в сторону от нуля.
ROUND_DOWN: режим округления в сторону нуля.
ROUND_CEILING: режим округления к положительной бесконечности. (То же самое, что ROUND_UP и если входные данные являются положительными. Если отрицательный, он ведет себя как ROUND_DOWN. Например, -1.1 будет -1.0 с ROUND_CEILING и -2 с ROUND_UP.)
ROUND_FLOOR: режим округления вниз до отрицательной бесконечности. (То же самое, что ROUND_DOWN и если входные данные являются положительными. Если отрицательный, он ведет себя как ROUND_UP.)
ROUND_HALF_UP: режим округления к "ближайшему соседу", если оба соседа равноудалены, в этом случае он ведет себя как ROUND_UP. (Чаще всего используется + по умолчанию для Dataflow.)
ROUND_HALF_DOWN: циклический режим округления в направлении "ближайшего соседа", если оба соседа не эквивалентны, в этом случае ROUND_DOWN.
ROUND_HALF_EVEN: режим округления к "ближайшему соседу", если оба соседа равноудалены, в этом случае округляется в сторону чётного соседа.
ROUND_UNNECESSARY: режим округления для утверждения о том, что операция округления имеет точный результат, поэтому округление не требуется.
round(100.123) -> 100.0
round(2.5, 0) -> 3.0
round(5.3999999999999995, 2, 7) -> 5.40
rowNumber
rowNumber() => integer
Назначает последовательную нумерацию строк для строк в окне, начиная с 1.
rowNumber()
rpad
rpad(<string to pad> : string, <final padded length> : integral, <padding> : string) => string
Дополняет строку справа с использованием предоставленного символа заполнения до достижения строкой определенной длины. Если строка равна или больше длины, строка обрезается до длины.
rpad('dumbo', 10, '-') -> 'dumbo-----'
rpad('dumbo', 4, '-') -> 'dumb'
rpad('dumbo', 8, '<>') -> 'dumbo<><'
rtrim
rtrim(<string to trim> : string, [<trim characters> : string]) => string
Обрезает строку конечных знаков справа. Если второй параметр не указан, он обрезает пробелы. В противном случае он обрезает любой символ, указанный во втором параметре.
rtrim(' dumbo ') -> ' dumbo'
rtrim('!--!du!mbo!', '-!') -> '!--!du!mbo'
S
second
second(<value1> : timestamp, [<value2> : string]) => integer
Возвращает второе значение даты. Можно передать необязательный часовой пояс в виде GMT, PSTUTCили America/Cayman. Локальный часовой пояс используется в качестве значения по умолчанию. Ознакомьтесь с классом SimpleDateFormat Java для доступных форматов.
second(toTimestamp('2009-07-30 12:58:59')) -> 59
seconds
seconds(<value1> : integer) => long
Предоставляет длительность в миллисекундах для количества секунд.
seconds(2) -> 2000L
setBitSet
setBitSet (<value1>: array, <value2>:array) => array
Задает битовые позиции в этом битовом наборе.
setBitSet(toBitSet([10, 32]), [98]) => [4294968320L, 17179869184L]
sha1
sha1(<value1> : any, ...) => string
Вычисляет дайджест SHA-1 набора столбцов различных примитивных типов данных и возвращает шестнадцатеричную строку 40 символов. Его можно использовать для вычисления отпечатка пальца для строки.
sha1(5, 'gunchus', 8.2, 'bojjus', true, toDate('2010-4-4')) -> '46d3b478e8ec4e1f3b453ac3d8e59d5854e282bb'
sha2
sha2(<value1> : integer, <value2> : any, ...) => string
Вычисляет дайджест SHA-2 набора столбцов различных примитивных типов данных при указании битовой длины, которая может иметь только значения 0(256), 224, 256, 384 и 512. Его можно использовать для вычисления отпечатка пальца для строки.
sha2(256, 'gunchus', 8.2, 'bojjus', true, toDate('2010-4-4')) -> 'afe8a553b1761c67d76f8c31ceef7f71b66a1ee6f4e6d3b5478bf68b47d06bd3'
sin
sin(<value1> : number) => double
Вычисляет значение синуса.
sin(2) -> 0.9092974268256817
sinh
sinh(<value1> : number) => double
Вычисляет значение гиперболического синуса.
sinh(0) -> 0.0
size
size(<value1> : any) => integer
Находит размер массива или типа карты.
size(['element1', 'element2']) -> 2
size([1,2,3]) -> 3
skewness
skewness(<value1> : number) => double
Возвращает асимметрию столбца.
skewness(sales)
skewnessIf
skewnessIf(<value1> : boolean, <value2> : number) => double
Возвращает скошенность столбца на основе критериев.
skewnessIf(region == 'West', sales)
slice
slice(<array to slice> : array, <from 1-based index> : integral, [<number of items> : integral]) => array
Извлекает подмножество массива из позиции. Позиция начинается с 1. Если длина опущена, она по умолчанию используется в конце строки.
slice([10, 20, 30, 40], 1, 2) -> [10, 20]
slice([10, 20, 30, 40], 2) -> [20, 30, 40]
slice([10, 20, 30, 40], 2)[1] -> 20
isNull(slice([10, 20, 30, 40], 2)[0]) -> true
isNull(slice([10, 20, 30, 40], 2)[20]) -> true
slice(['a', 'b', 'c', 'd'], 8) -> []
sort
sort(<value1> : array, <value2> : binaryfunction) => array
Сортирует массив с помощью предоставленной функции предиката. Функция sort ожидает ссылку на два последовательных элемента в функции выражения как #item1 и #item2.
sort([4, 8, 2, 3], compare(#item1, #item2)) -> [2, 3, 4, 8]
sort(['a3', 'b2', 'c1'], iif(right(#item1, 1) >= right(#item2, 1), 1, -1)) -> ['c1', 'b2', 'a3']
soundex
soundex(<value1> : string) => string
Возвращает код soundex для строки.
soundex('genius') -> 'G520'
split
split(<string to split> : string, <split characters> : string) => array
Разделяет строку на основе разделителя и возвращает массив строк.
split('bojjus,guchus,dumbo', ',') -> ['bojjus', 'guchus', 'dumbo']
split('bojjus,guchus,dumbo', '|') -> ['bojjus,guchus,dumbo']
split('bojjus, guchus, dumbo', ', ') -> ['bojjus', 'guchus', 'dumbo']
split('bojjus, guchus, dumbo', ', ')[1] -> 'bojjus'
isNull(split('bojjus, guchus, dumbo', ', ')[0]) -> true
isNull(split('bojjus, guchus, dumbo', ', ')[20]) -> true
split('bojjusguchusdumbo', ',') -> ['bojjusguchusdumbo']
sqrt
sqrt(<value1> : number) => double
Вычисляет квадратный корень числа.
sqrt(9) -> 3
startsWith
startsWith(<string> : string, <substring to check> : string) => boolean
Проверяет, начинается ли строка с предоставленной строки.
startsWith('dumbo', 'du') -> true
stddev
stddev(<value1> : number) => double
Возвращает стандартное отклонение для столбца.
stdDev(sales)
stddevIf
stddevIf(<value1> : boolean, <value2> : number) => double
Возвращает стандартное отклонение столбца на основе критериев.
stddevIf(region == 'West', sales)
stddevPopulation
stddevPopulation(<value1> : number) => double
Возвращает стандартное отклонение по всей совокупности значений столбца.
stddevPopulation(sales)
stddevPopulationIf
stddevPopulationIf(<value1> : boolean, <value2> : number) => double
Вычисляет стандартное отклонение генеральной совокупности для столбца на основе заданных критериев.
stddevPopulationIf(region == 'West', sales)
stddevSample
stddevSample(<value1> : number) => double
Возвращает выборочное стандартное отклонение для столбца.
stddevSample(sales)
stddevSampleIf
stddevSampleIf(<value1> : boolean, <value2> : number) => double
Возвращает выборочное стандартное отклонение столбца на основе критериев.
stddevSampleIf(region == 'West', sales)
subDays
subDays(<date/timestamp> : datetime, <days to subtract> : integral) => datetime
Вычитает дни из даты или отметки времени. То же, что и оператор - для даты.
subDays(toDate('2016-08-08'), 1) -> toDate('2016-08-07')
subMonths
subMonths(<date/timestamp> : datetime, <months to subtract> : integral) => datetime
Вычитает месяцы из даты или временной метки.
subMonths(toDate('2016-09-30'), 1) -> toDate('2016-08-31')
substring
substring(<string to subset> : string, <from 1-based index> : integral, [<number of characters> : integral]) => string
Извлекает подстроку определенной длины из заданной позиции. Нумерация начинается с 1. Если длина опущена, она по умолчанию используется в конце строки.
substring('Cat in the hat', 5, 2) -> 'in'
substring('Cat in the hat', 5, 100) -> 'in the hat'
substring('Cat in the hat', 5) -> 'in the hat'
substring('Cat in the hat', 100, 100) -> ''
substringIndex
substringIndex(
<строка для подмножества><разделитель>substringIndex( : string, : string, <количество вхождений разделителя> : целое]) => string
Извлекает подстроку перед подсчетом вхождения разделителя. Если количество положительное, возвращается все, что находится слева от последнего разделителя (при подсчёте слева направо). Если число отрицательное, возвращается все справа от последнего разделителя, начиная с правого конца.
substringIndex('111-222-333', '-', 1) -> '111'
substringIndex('111-222-333', '-', 2) -> '111-222'
substringIndex('111-222-333', '-', -1) -> '333'
substringIndex('111-222-333', '-', -2) -> '222-333'
sum
sum(<value1> : number) => number
Возвращает общую сумму числового столбца.
sum(col)
sumDistinct
sumDistinct(<value1> : number) => number
Возвращает общую сумму различных значений числового столбца.
sumDistinct(col)
sumDistinctIf
sumDistinctIf(<value1> : boolean, <value2> : number) => number
Возвращает агрегированную сумму числового столбца на основе критериев. Условие может быть основано на любом столбце.
sumDistinctIf(state == 'CA' && commission < 10000, sales)
sumDistinctIf(true, sales)
sumIf
sumIf(<value1> : boolean, <value2> : number) => number
Возвращает агрегированную сумму числового столбца на основе критериев. Условие может быть основано на любом столбце.
sumIf(state == 'CA' && commission < 10000, sales)
sumIf(true, sales)
T
tan
tan(<value1> : number) => double
Вычисляет значение тангенса.
tan(0) -> 0.0
tanh
tanh(<value1> : number) => double
Вычисляет значение гиперболического тангенса.
tanh(0) -> 0.0
toBase64
toBase64(<value1> : string, <encoding type> : string]) => string
Кодирует определенную строку в base64. При необходимости можно передать тип кодировки.
toBase64('bojjus') -> 'Ym9qanVz'
toBase64('± 25000, € 5.000,- |', 'Windows-1252') -> 'sSAyNTAwMCwggCA1LjAwMCwtIHw='
toBinary
toBinary(<value1> : any) => binary
Преобразует любое число, дату, метку времени или строку в двоичное представление.
toBinary(3) -> [0x11]
toBoolean
toBoolean(<value1> : string) => boolean
Преобразует значение (t, true, y, yes, 1) в true, (f, false, n, no, 0) в false, а любое другое значение — в NULL.
toBoolean('true') -> true
toBoolean('n') -> false
isNull(toBoolean('truthy')) -> true
toByte
toByte(<value> : any, [<format> : string], [<locale> : string]) => byte
Преобразовывает любое числовое или строковое значение в байтовое значение. Для преобразования можно использовать необязательный десятичный формат Java.
toByte(123)
123
toByte(0xFF)
-1
toByte('123')
123
toDate
toDate(<string> : any, [<date format> : string]) => date
Преобразует входную строку даты в дату с помощью необязательного формата входной даты. Ознакомьтесь с классом SimpleDateFormat Java для доступных форматов. Если формат входной даты опущен, формат по умолчанию равен yyyy-[M]M-[d]d. Допустимые форматы.:[ yyyy, yyyy-[M]M, yyyy-[M]M-[d]d, yyyy-[M]M-[d]dT* ]
toDate('2012-8-18') -> toDate('2012-08-18')
toDate('12/18/2012', 'MM/dd/yyyy') -> toDate('2012-12-18')
toDecimal
toDecimal(<value> : any, [<precision> : integral], [<scale> : integral], [<format> : string], [<locale> : string]) => decimal(10,0)
Преобразует любое числовое значение или строку в десятичное значение. Если точность и масштабирование не указаны, по умолчанию используется значение (10,2). Для преобразования можно использовать необязательный десятичный формат Java. Используйте необязательный языковой стандарт в формате BCP47, например en-US, de или zh-CN.
toDecimal(123.45) -> 123.45
toDecimal('123.45', 8, 4) -> 123.4500
toDecimal('$123.45', 8, 4,'$###.00') -> 123.4500
toDecimal('Ç123,45', 10, 2, 'Ç###,##', 'de') -> 123.45
toDouble
toDouble(<value> : any, [<format> : string], [<locale> : string]) => double
Преобразует любое числовое значение или строку в двойное значение. Для преобразования можно использовать необязательный десятичный формат Java. Используйте опциональный формат в виде языкового стандарта BCP47, такого как en-US, de или zh-CN.
toDouble(123.45) -> 123.45
toDouble('123.45') -> 123.45
toDouble('$123.45', '$###.00') -> 123.45
toDouble('Ç123,45', 'Ç###,##', 'de') -> 123.45
toFloat
toFloat(<value> : any, [<format> : string], [<locale> : string]) => float
Преобразует любое числовое или строковое значение в плавающее. Для преобразования можно использовать необязательный десятичный формат Java. Усекает любое значение double.
toFloat(123.45) -> 123.45f
toFloat('123.45') -> 123.45f
toFloat('$123.45', '$###.00') -> 123.45f
toInteger
toInteger(<value> : any, [<format> : string], [<locale> : string]) => integer
Преобразует любое числовое или строковое значение в целое. Для преобразования можно использовать необязательный десятичный формат Java. Усекает любое значение long, float, double.
toInteger(123) -> 123
toInteger('123') -> 123
toInteger('$123', '$###') -> 123
toLong
toLong(<value> : any, [<format> : string], [<locale> : string]) => long
Преобразует любое числовое или строковое значение в длинное. Для преобразования можно использовать необязательный десятичный формат Java. Усекает любое значение float, double.
toLong(123) -> 123
toLong('123') -> 123
toLong('$123', '$###') -> 123
topN
topN(<column/expression> : any, <count> : long, <n> : integer) => array
Возвращает верхние N значения для этого столбца на основе аргумента количества.
topN(custId, count, 5)
topN(productId, num_sales, 10)
toShort
toShort(<value> : any, [<format> : string], [<locale> : string]) => short
Преобразует любое числовое или строковое значение в короткое. Для преобразования можно использовать необязательный десятичный формат Java. Усекает любое значение integer, long, float, double.
toShort(123) -> 123
toShort('123') -> 123
toShort('$123', '$###') -> 123
toString
toString(<value> : any, [<number format/date format> : string], [<date locale> : string]) => string
Преобразует примитивный тип данных в строку. Можно указать формат чисел и дат. Если не указано, системное значение по умолчанию выбирается. Десятичный формат Java используется для чисел. Ознакомьтесь с классом SimpleDateFormat Java для доступных форматов. Формат по умолчанию — yyyy-MM-dd. Для метки даты или времени можно опционально указать локаль.
toString(10) -> '10'
toString('engineer') -> 'engineer'
toString(123456.789, '##,###.##') -> '123,456.79'
toString(123.78, '000000.000') -> '000123.780'
toString(12345, '##0.#####E0') -> '12.345E3'
toString(toDate('2018-12-31')) -> '2018-12-31'
isNull(toString(toDate('2018-12-31', 'MM/dd/yy'))) -> true
toString(4 == 20) -> 'false'
toString(toDate('12/31/18', 'MM/dd/yy', 'es-ES'), 'MM/dd/yy', 'de-DE')
toTimestamp
toTimestamp(<string> : any, [<timestamp format> : string], [<time zone> : string]) => timestamp
Преобразует строку в метку времени при указании необязательного формата метки времени. Если метка времени опущена, используется шаблон yyyy-[M]M-[d]d hh:mm:ss[.f...] по умолчанию. Можно передать необязательный часовой пояс в виде GMT, PSTUTCили America/Cayman. Функция timestamp поддерживает точность до миллисекунды со значением 999. Ознакомьтесь с классом SimpleDateFormat Java для доступных форматов.
toTimestamp('2016-12-31 00:12:00') -> toTimestamp('2016-12-31 00:12:00')
toTimestamp('2016-12-31T00:12:00', 'yyyy-MM-dd\'T\'HH:mm:ss', 'PST') -> toTimestamp('2016-12-31 00:12:00')
toTimestamp('12/31/2016T00:12:00', 'MM/dd/yyyy\'T\'HH:mm:ss') -> toTimestamp('2016-12-31 00:12:00')
millisecond(toTimestamp('2019-02-03 05:19:28.871', 'yyyy-MM-dd HH:mm:ss.SSS')) -> 871
toUTC
toUTC(<value1> : timestamp, [<value2> : string]) => timestamp
Преобразует метку времени в формате UTC. Можно передать необязательный часовой пояс в виде GMT, PSTUTCили America/Cayman. По умолчанию используется текущий часовой пояс. Ознакомьтесь с классом SimpleDateFormat Java для доступных форматов.
toUTC(currentTimestamp()) == toTimestamp('2050-12-12 19:18:12') -> false
toUTC(currentTimestamp(), 'Asia/Seoul') != toTimestamp('2050-12-12 19:18:12') -> true
translate
translate(<string to translate> : string, <lookup characters> : string, <replace characters> : string) => string
Заменяет один набор знаков другим набором знаков в строке. Символы имеют одну на одну замену.
translate('(bojjus)', '()', '[]') -> '[bojjus]'
translate('(gunchus)', '()', '[') -> '[gunchus'
trim
trim(<string to trim> : string, [<trim characters> : string]) => string
Обрезает строку начальных и конечных знаков. Если второй параметр не указан, он обрезает пробелы. В противном случае он обрезает любой символ, указанный во втором параметре.
trim(' dumbo ') -> 'dumbo'
trim('!--!du!mbo!', '-!') -> 'dumbo'
true
true() => boolean
Всегда возвращает истинное значение. Используйте функцию syntax(true()) , если столбец называется true.
(10 + 20 == 30) -> true
(10 + 20 == 30) -> true()
typeMatch
typeMatch(<type> : string, <base type> : string) => boolean
Сопоставляет тип столбца. Его можно использовать только в выражениях шаблонов. Функция number совпадает с коротким, целым числом, длинным, двойным, плавающим или десятичным. Функция integral сопоставляет short, int, long. Функция соответствует типам double, float, decimal fractional. Функция datetime соответствует типу метки даты или времени.
typeMatch(type, 'number')
typeMatch('date', 'datetime')
U
unescape
unescape(<string_to_escape> : string, <format> : string) => string
Отменяет экранирование строки в соответствии с форматом. Литеральные значения допустимых форматов: json, xml, ecmascript, htmlи java.
unescape('{\\\\\"value\\\\\": 10}', 'json')
'{\\\"value\\\": 10}'
unfold
unfold (<value1>: array) => any
Разворачивает массив в набор строк и повторяет значения для оставшихся столбцов в каждой строке
unfold(addresses) => any
unfold( @(name = salesPerson, sales = salesAmount) ) => any
unhex
unhex(<value1>: string) => binary
Преобразовывает шестнадцатеричное строковое представление в двоичное значение. Его можно использовать с sha2, md5 для преобразования из строки в двоичное представление.
unhex('1fadbe') -> toBinary([toByte(0x1f), toByte(0xad), toByte(0xbe)])
unhex(md5(5, 'gunchus', 8.2, 'bojjus', true, toDate('2010-4-4'))) -> toBinary([toByte(0x4c),toByte(0xe8),toByte(0xa8),toByte(0x80),toByte(0xbd),toByte(0x62),toByte(0x1a),toByte(0x1f),toByte(0xfa),toByte(0xd0),toByte(0xbc),toByte(0xa9),toByte(0x05),toByte(0xe1),toByte(0xbc),toByte(0x5a)])
union
union(<value1>: array, <value2> : array) => array
Возвращает объединенный набор уникальных элементов из двух массивов.
union([10, 20, 30], [20, 40]) => [10, 20, 30, 40]
upper
upper(<value1> : string) => string
Преобразовывает строку в верхний регистр.
upper('bojjus') -> 'BOJJUS'
uuid
uuid() => string
Возвращает созданный UUID.
uuid()
V
variance
variance(<value1> : number) => double
Возвращает дисперсию столбца.
variance(sales)
varianceIf
varianceIf(<value1> : boolean, <value2> : number) => double
Возвращает дисперсию столбца в соответствии с заданными критериями.
varianceIf(region == 'West', sales)
variancePopulation
variancePopulation(<value1> : number) => double
Возвращает дисперсию по всей совокупности значений столбца.
variancePopulation(sales)
variancePopulationIf
variancePopulationIf(<value1> : boolean, <value2> : number) => double
Возвращает выборочную дисперсию данных столбца на основе заданных критериев.
variancePopulationIf(region == 'West', sales)
varianceSample
varianceSample(<value1> : number) => double
Возвращает несмещенную дисперсию столбца.
varianceSample(sales)
varianceSampleIf
varianceSampleIf(<value1> : boolean, <value2> : number) => double
Возвращает несмещённую дисперсию столбца в соответствии с заданными критериями.
varianceSampleIf(region == 'West', sales)
W
weekOfYear
weekOfYear(<value1> : datetime) => integer
Определяет номер недели в году по указанной дате.
weekOfYear(toDate('2008-02-20')) -> 8
weeks
weeks(<value1> : integer) => long
Получает длительность в миллисекундах для указанного количества недель.
weeks(2) -> 1209600000L
X
xor
xor(<value1> : boolean, <value2> : boolean) => boolean
Использует логический XOR оператор. Аналогично оператору ^.
xor(true, false) -> true
xor(true, true) -> false
true ^ false -> true
Y
year
year(<value1> : datetime) => integer
Возвращает значение года даты.
year(toDate('2012-8-8')) -> 2012
Связанный контент
- Список всех агрегатных функций.
- Список всех функций массивов.
- Список всех функций кэшированного поиска.
- Список всех функций преобразования.
- Список всех функций даты и времени.
- Список всех функций выражений.
- Список всех функций сопоставления.
- Список всех метафункций.
- Список всех оконных функций.
- Узнайте, как использовать Построитель выражений.