Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
DOTYCZY:
Azure Data Factory
Azure Synapse Analytics
Tip
Wypróbuj usługę Data Factory w usłudze Microsoft Fabric — rozwiązanie analityczne typu all-in-one dla przedsiębiorstw. Usługa Microsoft Fabric obejmuje wszystko, od przenoszenia danych do nauki o danych, analizy w czasie rzeczywistym, analizy biznesowej i raportowania. Dowiedz się, jak bezpłatnie rozpocząć nową wersję próbną !
Przepływy danych są dostępne zarówno w potokach usługi Azure Data Factory, jak i w potokach usługi Azure Synapse Analytics. Ten artykuł dotyczy przepływów danych mapowania. Jeśli dopiero zaczynasz przekształcanie danych, zapoznaj się z artykułem wprowadzającym Przekształcanie danych przy użyciu przepływów danych mapowania.
Ten artykuł zawiera szczegółowe informacje o użyciu wszystkich wyrażeń i funkcji obsługiwanych przez usługi Azure Data Factory i Azure Synapse Analytics w przepływach danych mapowania. W przypadku podsumowań każdego obsługiwanego typu funkcji zapoznaj się z następującymi artykułami:
- Funkcje agregujące
- Funkcje tablicy
- Buforowane funkcje wyszukiwania
- Funkcje konwersji
- Funkcje daty i godziny
- Funkcje wyrażeń
- Funkcje mapy
- Metafunctions
- Funkcje okna
Alfabetyczna lista wszystkich funkcji
Poniższa lista alfabetyczna zawiera wszystkie funkcje dostępne w przepływach danych mapowania.
A
abs
abs(<value1> : number) => number
Zwraca wartość bezwzględną liczby.
abs(-20) -> 20abs(10) -> 10
acos
acos(<value1> : number) => double
Oblicza wartość odwrotną cosinusu.
acos(1) -> 0.0
add
add(<value1> : any, <value2> : any) => any
Dodaje parę ciągów lub liczb. Dodaje datę do wielu dni. Dodaje czas trwania do znacznika czasu. Dołącza jedną tablicę tego samego typu do innej. Tak samo jak + operator.
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
Dodaje dni do daty lub znacznika czasu. Tak samo jak operator + dla daty.
addDays(toDate('2016-08-08'), 1) -> toDate('2016-08-09')
addMonths
addMonths(<date/timestamp> : datetime, <months to add> : integral, [<value3> : string]) => datetime
Dodaje miesiące do daty lub znacznika czasu. Opcjonalnie możesz przekazać strefę czasową.
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
Używa operatora logicznego AND . Tak samo jak &&.
and(true, false) -> falsetrue && false -> false
approxDistinctCount
approxDistinctCount(<value1> : any, [ <value2> : double ]) => long
Pobiera przybliżoną liczbę agregacji unikatowych wartości dla kolumny. Opcjonalny drugi parametr służy do kontrolowania błędu szacowania.
approxDistinctCount(ProductID, .05) => long
array
array([<value1> : any], ...) => array
Tworzy tablicę elementów. Wszystkie elementy powinny być tego samego typu. Jeśli nie określono żadnych elementów, pusta tablica ciągów jest wartością domyślną. Tak samo jak [] operator tworzenia.
array('Seattle', 'Washington')['Seattle', 'Washington']['Seattle', 'Washington'][1]'Washington'
ascii
ascii(<Input> : string) => number
Zwraca wartość liczbową znaku wejściowego. Jeśli ciąg wejściowy ma więcej niż jeden znak, zwracana jest wartość liczbowa pierwszego znaku.
ascii('A') -> 65ascii('a') -> 97
asin
asin(<value1> : number) => double
Oblicza odwrotną wartość sinusu.
asin(0) -> 0.0
assertErrorMessages
assertErrorMessages() => map
Zwraca mapę wszystkich komunikatów o błędach dla wiersza z identyfikatorem potwierdzenia jako kluczem.
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
Tworzy mapę klucz/wartości. Wszystkie klucze i wartości powinny być tego samego typu. Jeśli nie określono żadnych elementów, domyślnie zostanie ustawiona mapa ciągu na typ ciągu. Tak samo jak [ -> ] operator tworzenia. Klucze i wartości powinny być alternatywne ze sobą.
associate('fruit', 'apple', 'vegetable', 'carrot' )=> ['fruit' -> 'apple', 'vegetable' -> 'carrot']
at
at(<value1> : array/map, <value2> : integer/key type) => array
Znajduje element w indeksie tablicy. Indeks zaczyna się od 1. Indeks poza granicami powoduje wartość null. Znajduje wartość na mapie w przypadku danego klucza. Jeśli klucz nie zostanie znaleziony, zwraca wartość null.
at(['apples', 'pears'], 1) => 'apples'at(['fruit' -> 'apples', 'vegetable' -> 'carrot'], 'fruit') => 'apples'
atan
atan(<value1> : number) => double
Oblicza odwrotną wartość tangensową.
atan(0) -> 0.0
atan2
atan2(<value1> : number, <value2> : number) => double
Zwraca kąt w radianach między dodatnią osią x płaszczyzny a punktem podanym przez współrzędne.
atan2(0, 0) -> 0.0
avg
avg(<value1> : number) => number
Pobiera średnią wartości kolumny.
avg(sales)
avgIf
avgIf(<value1> : boolean, <value2> : number) => number
Pobiera średnią wartości kolumny na podstawie kryteriów.
avgIf(region == 'West', sales)
B
between
between(<value1> : any, <value2> : any, <value3> : any) => boolean
Sprawdza, czy pierwsza wartość znajduje się między dwiema innymi wartościami włącznie. Można porównać wartości liczbowe, ciągowe i datetime .
between(10, 5, 24)truebetween(currentDate(), currentDate() + 10, currentDate() + 20)false
bitwiseAnd
bitwiseAnd(<value1> : integral, <value2> : integral) => integral
Używa operatora bitowego And we wszystkich typach całkowitych. Tak samo jak & operator.
bitwiseAnd(0xf4, 0xef)0xe4(0xf4 & 0xef)0xe4
bitwiseOr
bitwiseOr(<value1> : integral, <value2> : integral) => integral
Używa operatora bitowego Or we wszystkich typach całkowitych. Tak samo jak | operator.
bitwiseOr(0xf4, 0xef)0xff(0xf4 | 0xef)0xff
bitwiseXor
bitwiseXor(<value1> : any, <value2> : any) => any
Używa operatora bitowego Or we wszystkich typach całkowitych. Tak samo jak | operator
bitwiseXor(0xf4, 0xef)0x1b(0xf4 ^ 0xef)0x1b(true ^ false)true(true ^ true)false
blake2b
blake2b(<value1> : integer, <value2> : any, ...) => string
Oblicza skrót Blake2 zestawu kolumn o różnych typach danych pierwotnych, gdy dana długość bitu może zawierać tylko wielokrotność 8 z zakresu od 8 do 512. Można go użyć do obliczenia odcisku palca dla wiersza.
blake2b(256, 'gunchus', 8.2, 'bojjus', true, toDate('2010-4-4'))'c9521a5080d8da30dffb430c50ce253c345cc4c4effc315dab2162dac974711d'
blake2bBinary
blake2bBinary(<value1> : integer, <value2> : any, ...) => binary
Oblicza skrót Blake2 zestawu kolumn o różnych prymitywnych typach danych, gdy podana długość bitu musi być wielokrotnością 8, w zakresie od 8 do 512. Można go użyć do obliczenia odcisku palca dla wiersza.
blake2bBinary(256, 'gunchus', 8.2, 'bojjus', true, toDate('2010-4-4'))unHex('c9521a5080d8da30dffb430c50ce253c345cc4c4effc315dab2162dac974711d')
byItem
byItem(<parent column> : any, <column name> : string) => any
Znajduje element podrzędny w strukturze lub tablicy struktur. Jeśli istnieje wiele dopasowań, zostanie zwrócone pierwsze dopasowanie. Jeśli nie ma dopasowań, zwracana jest wartość NULL. Zwracana wartość musi być konwertowana przez jedną z akcji konwersji typu (takich jak ? date i ? string). Nazwy kolumn adresów znane w czasie projektowania według ich nazw. Obliczone dane wejściowe nie są obsługiwane, ale można użyć zamian parametrów.
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
Wybiera wartość kolumny według nazwy w strumieniu. Możesz przekazać opcjonalną nazwę strumienia jako drugi argument. Jeśli istnieje wiele dopasowań, zostanie zwrócone pierwsze dopasowanie. Jeśli nie ma dopasowań, zwracana jest wartość NULL. Zwracana wartość musi być konwertowana przez jedną z funkcji konwersji typów (takich jak TO_DATE i TO_STRING). Nazwy kolumn adresów znane w czasie projektowania według ich nazw. Obliczone dane wejściowe nie są obsługiwane, ale można użyć zamian parametrów.
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
Wybierz tablicę kolumn według nazwy w strumieniu. Możesz przekazać opcjonalną nazwę strumienia jako drugi argument. Jeśli istnieje wiele dopasowań, zostanie zwrócone pierwsze dopasowanie. Jeśli nie ma dopasowań dla kolumny, całe dane wyjściowe są wartością NULL . Zwracana wartość wymaga funkcji konwersji typu (takiej jak toDate i toString). Nazwy kolumn adresów znane w czasie projektowania według ich nazw. Obliczone dane wejściowe nie są obsługiwane, ale można użyć zamian parametrów.
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
Wybiera wartość kolumny według nazwy w strumieniu pochodzenia. Drugim argumentem jest nazwa strumienia pochodzenia. Jeśli istnieje wiele dopasowań, zostanie zwrócone pierwsze dopasowanie. Jeśli nie ma dopasowań, zwracana jest wartość NULL. Zwracana wartość musi być konwertowana przez jedną z funkcji konwersji typów (takich jak TO_DATE i TO_STRING). Nazwy kolumn adresów znane w czasie projektowania według ich nazw. Obliczone dane wejściowe nie są obsługiwane, ale można użyć zamian parametrów.
toString(byOrigin('ancestor', 'ancestorStream'))
byOrigins
byOrigins(<column names> : array, [<origin stream name> : string]) => any
Wybiera tablicę kolumn według nazwy w strumieniu. Drugim argumentem jest strumień, z którego pochodzi. Jeśli istnieje wiele dopasowań, zostanie zwrócone pierwsze dopasowanie. Jeśli nie ma dopasowań, zwracana jest wartość NULL. Zwracana wartość musi być konwertowana przez jedną z funkcji konwersji typów (takich jak TO_DATE i TO_STRING). Nazwy kolumn adresów znane w czasie projektowania według ich nazw. Obliczone dane wejściowe nie są obsługiwane, ale można użyć zamian parametrów.
toString(byOrigins(['ancestor1', 'ancestor2'], 'ancestorStream'))
byPath
byPath(<value1> : string, [<streamName> : string]) => any
Znajduje ścieżkę hierarchiczną według nazwy w strumieniu. Możesz przekazać opcjonalną nazwę strumienia jako drugi argument. Jeśli taka ścieżka nie zostanie znaleziona, zwraca wartość NULL. Nazwy/ścieżki kolumn znane w czasie projektowania powinny być adresowane tylko przy użyciu ich nazwy lub ścieżki notacji kropkowej. Obliczone dane wejściowe nie są obsługiwane, ale można użyć zamian parametrów.
byPath('grandpa.parent.child') => column
byPosition
byPosition(<position> : integer) => any
Wybiera wartość kolumny według pozycji względnej (1 na podstawie) w strumieniu. Jeśli pozycja jest poza granicami, zwracana jest wartość NULL. Zwracana wartość musi być konwertowana przez jedną z funkcji konwersji typów (takich jak TO_DATE lub TO_STRING). Obliczone dane wejściowe nie są obsługiwane, ale można użyć zamian parametrów.
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
Na podstawie naprzemiennych warunków funkcja case stosuje jedną wartość lub drugą. Jeśli liczba danych wejściowych jest parzysta, druga jest domyślnie ustawiona NULL dla ostatniego warunku.
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
Oblicza pierwiastek modułu liczby.
cbrt(8) -> 2.0
ceil
ceil(<value1> : number) => number
Zwraca najmniejszą liczbę całkowitą nie mniejszą niż liczba.
ceil(-0.1) -> 0
char
char(<Input> : number) => string
Zwraca znak ASCII reprezentowany przez liczbę wejściową. Jeśli liczba jest większa niż 256, wynik jest równoważny znakowi (liczba % 256).
char(65) -> 'A'char(97) -> 'a'
coalesce
coalesce(<value1> : any, ...) => any
Zwraca pierwszą wartość nie null z zestawu danych wejściowych. Wszystkie dane wejściowe powinny być tego samego typu.
coalesce(10, 20) -> 10coalesce(toString(null), toString(null), 'dumbo', 'bo', 'go') -> 'dumbo'
collect
collect(<value1> : any) => array
Zbiera wszystkie wartości wyrażenia w zagregowanej grupie w tablicy. Podczas tego procesu można zbierać i przekształcać struktury na alternatywne struktury. Liczba elementów jest równa liczbie wierszy w tej grupie i może zawierać wartości null. Liczba zebranych elementów powinna być mała.
collect(salesPerson)collect(firstName + lastName))collect(@(name = salesPerson, sales = salesAmount) )
collectUnique
collectUnique(<value1> : any) => array
Zbiera wszystkie wartości wyrażenia w zagregowanej grupie w unikatowej tablicy. Podczas tego procesu można zbierać i przekształcać struktury na alternatywne struktury. Liczba elementów jest równa liczbie wierszy w tej grupie i może zawierać wartości null. Liczba zebranych elementów powinna być mała.
collect(salesPerson)collect(firstName + lastName))collect(@(name = salesPerson, sales = salesAmount) )
columnNames
columnNames(
<value1>columnNames( : ciąg, i><value1> : wartość logiczna) => tablica
Pobiera nazwy wszystkich kolumn wyjściowych dla strumienia. Jako pierwszy argument można przekazać opcjonalną nazwę strumienia. Drugi argument jest również opcjonalny z wartością false jako domyślną. Jeśli ustawisz drugi argument na true()wartość , usługa Data Factory zwróci tylko kolumny dryfujące przez dryf schematu.
columnNames()
columnNames('DeriveStream')
columnNames('DeriveStream', true())
columnNames('', true())
columns
columns([<stream name> : string]) => any
Pobiera wartości wszystkich kolumn wyjściowych dla strumienia. Możesz przekazać opcjonalną nazwę strumienia jako drugi argument.
columns()
columns('DeriveStream')
compare
compare(<value1> : any, <value2> : any) => integer
Porównuje dwie wartości tego samego typu. Zwraca ujemną liczbę całkowitą, jeśli wartość1 < wartość2, 0, jeśli wartość1 == value2, i wartość dodatnią, jeśli wartość1 > wartość2.
(compare(12, 24) < 1) -> true
(compare('dumbo', 'dum') > 0) -> true
concat
concat(<this> : string, <that> : string, ...) => string
Łączy ze sobą zmienną liczbę ciągów. Tak samo jak operator + dla ciągów.
concat('dataflow', 'is', 'awesome') -> 'dataflowisawesome'
'dataflow' + 'is' + 'awesome' -> 'dataflowisawesome'
isNull('sql' + null) -> true
concatWS
concatWS(<separator> : string, <this> : string, <that> : string, ...) => string
Łączy zmienną liczbę ciągów wraz z separatorem. Pierwszy parametr jest separatorem.
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
Zwraca true, jeśli jakikolwiek element w podanej tablicy jest oceniany jako true w kontekście podanego predykatu. Funkcja Th contains oczekuje odwołania do jednego elementu w funkcji predykatu jako #item.
contains([1, 2, 3, 4], #item == 3) -> true
contains([1, 2, 3, 4], #item > 5) -> false
cos
cos(<value1> : number) => double
Oblicza wartość cosinusu.
cos(10) -> -0.8390715290764524
cosh
cosh(<value1> : number) => double
Oblicza cosinus hiperboliczny wartości.
cosh(0) -> 1.0
count
count([<value1> : any]) => long
Pobiera zagregowaną liczbę wartości. Jeśli określono co najmniej jedną opcjonalną kolumnę, wartości NULL są ignorowane w liczbie.
count(custId)
count(custId, custName)
count()
count(iif(isNull(custId), 1, NULL))
countAll
countAll([<value1> : any]) => long
Pobiera zagregowaną liczbę wartości, w tym wartości null.
countAll(custId)
countAll()
countDistinct
countDistinct(<value1> : any, [<value2> : any], ...) => long
Pobiera zagregowaną liczbę unikatowych wartości zestawu kolumn.
countDistinct(custId, custName)
countAllDistinct
countAllDistinct(<value1> : any, [<value2> : any], ...) => long
Pobiera zagregowaną liczbę unikatowych wartości zestawu kolumn, w tym wartości null.
countAllDistinct(custId, custName)
countIf
countIf(<value1> : boolean, [<value2> : any]) => long
Pobiera zagregowaną liczbę wartości na podstawie kryteriów. Jeśli opcjonalna kolumna zostanie określona, zignoruje wartości NULL przy zliczaniu.
countIf(state == 'CA' && commission < 10000, name)
covariancePopulation
covariancePopulation(<value1> : number, <value2> : number) => double
Pobiera kowariancję populacji między dwiema kolumnami.
covariancePopulation(sales, profit)
covariancePopulationIf
covariancePopulationIf(<value1> : boolean, <value2> : number, <value3> : number) => double
Pobiera kowariancję populacji dwóch kolumn na podstawie kryteriów.
covariancePopulationIf(region == 'West', sales)
covarianceSample
covarianceSample(<value1> : number, <value2> : number) => double
Pobiera wariancję przykładową dwóch kolumn.
covarianceSample(sales, profit)
covarianceSampleIf
covarianceSampleIf(<value1> : boolean, <value2> : number, <value3> : number) => double
Pobiera kowariancję próbną dwóch kolumn na podstawie kryteriów.
covarianceSampleIf(region == 'West', sales, profit)
crc32
crc32(<value1> : any, ...) => long
Oblicza skrót CRC32 zestawu kolumn o różnych typach danych pierwotnych, gdy dana długość bitu może mieć tylko wartości 0(256), 224, , 256, 384i 512. Można go użyć do obliczenia odcisku palca dla wiersza.
crc32(256, 'gunchus', 8.2, 'bojjus', true, toDate('2010-4-4')) -> 3630253689L
cumeDist
cumeDist() => integer
Funkcja cumeDist oblicza położenie wartości względem wszystkich wartości w partycji. Wynikiem jest liczba wierszy poprzedzających lub równych bieżącemu wierszowi w kolejności partycji podzielonej przez łączną liczbę wierszy w partycji okna. Wszystkie wartości wiązania w kolejności są obliczane na tej samej pozycji.
cumeDist()
currentDate
currentDate([<value1> : string]) => date
Pobiera bieżącą datę uruchomienia tego zadania. Możesz przekazać opcjonalną strefę czasową w postaci GMT, PST, UTClub America/Cayman. Lokalna strefa czasowa centrum danych/regionu fabryki danych jest używana jako domyślna. Aby uzyskać dostępne formaty, zapoznaj się z klasą SimpleDateFormat języka 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
Pobiera bieżącą sygnaturę czasową, gdy zadanie zacznie działać z lokalną strefą czasową.
currentTimestamp() == toTimestamp('2250-12-31 12:12:12') -> false
currentUTC
currentUTC([<value1> : string]) => timestamp
Pobiera aktualny znacznik czasu jako UTC. Jeśli chcesz, aby bieżący czas był interpretowany w innej strefie czasowej niż strefa czasowa klastra, możesz przekazać opcjonalną strefę czasową w postaci GMT, , PSTUTClub America/Cayman. Domyślnie jest ustawiona na obecną strefę czasową. Aby uzyskać dostępne formaty, zapoznaj się z klasą SimpleDateFormat języka Java. Aby przekonwertować czas UTC na inną strefę czasową, użyj polecenia 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
Pobiera dzień miesiąca, kiedy podano datę.
dayOfMonth(toDate('2018-06-08')) -> 8
dayOfWeek
dayOfWeek(<value1> : datetime) => integer
Pobiera dzień tygodnia, kiedy podano datę. Na przykład jest 1 niedziela, 2 to poniedziałek, ... i 7 jest sobota.
dayOfWeek(toDate('2018-06-08')) -> 6
dayOfYear
dayOfYear(<value1> : datetime) => integer
Określa dzień roku na podstawie podanej daty.
dayOfYear(toDate('2016-04-09')) -> 100
days
days(<value1> : integer) => long
Czas trwania w milisekundach dla liczby dni.
days(2) -> 172800000L
decode
decode(<Input> : any, <Charset> : string) => binary
Dekoduje zakodowane dane wejściowe do ciągu na podstawie danego zestawu znaków. Możesz użyć drugiego (opcjonalnego) argumentu, aby określić, który zestaw znaków ma być używany. Przykłady to US-ASCII, , ISO-8859-1UTF-8(domyślne), UTF-16BE, UTF-16LE, i UTF-16.
decode(array(toByte(97),toByte(98),toByte(99)), 'US-ASCII') -> abc
degrees
degrees(<value1> : number) => double
Konwertuje radiany na stopnie.
degrees(3.141592653589793) -> 180
denseRank
denseRank() => integer
Oblicza rangę wartości w grupie wartości określonych w kolejności okna według klauzuli. Wynik jest jednym plus liczbą wierszy poprzedzających lub równych bieżącemu wierszowi w kolejności partycji. Wartości nie generują luk w sekwencji. Funkcja denseRank działa nawet wtedy, gdy dane nie są sortowane i szukają zmian w wartościach.
denseRank()
distinct
distinct(<value1> : array) => array
Zwraca unikatowy zestaw elementów z tablicy.
distinct([10, 20, 30, 10]) => [10, 20, 30]
divide
divide(<value1> : any, <value2> : any) => any
Dzieli parę liczb. Tak samo jak / operator.
divide(20, 10) -> 2
20 / 10 -> 2
dropLeft
dropLeft(<value1> : string, <value2> : integer) => string
Usuwa tyle znaków z lewej strony ciągu. Jeśli żądana kropla przekracza długość ciągu, zwracany jest pusty ciąg.
dropLeft('bojjus', 2) => 'jjus'
dropLeft('cake', 10) => ''
dropRight
dropRight(<value1> : string, <value2> : integer) => string
Usuwa tyle znaków z prawej strony ciągu. Jeśli żądana kropla przekracza długość ciągu, zwracany jest pusty ciąg.
dropRight('bojjus', 2) => 'bojj'
dropRight('cake', 10) => ''
E
encode
encode(<Input> : string, <Charset> : string) => binary
Koduje dane ciągu wejściowego do danych binarnych na podstawie zestawu znaków. Drugi (opcjonalny) argument może służyć do określenia zestawu znaków do użycia. Przykłady to US-ASCII, , ISO-8859-1UTF-8(domyślne), UTF-16BE, UTF-16LE, i UTF-16.
encode('abc', 'US-ASCII') -> array(toByte(97),toByte(98),toByte(99))
endsWith
endsWith(<string> : string, <substring to check> : string) => boolean
Sprawdza, czy ciąg kończy się podanym ciągiem.
endsWith('dumbo', 'mbo') -> true
equals
equals(<value1> : any, <value2> : any) => boolean
Używa operatora porównywania równości. Tak samo jak == operator.
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
Używa operatora porównania równości, ignorując przypadek. Tak samo jak <=> operator.
'abc'<=>'Abc' -> true
equalsIgnoreCase('abc', 'Abc') -> true
escape
escape(<string_to_escape> : string, <format> : string) => string
Usuwa ciąg zgodnie z formatem. Wartości literału dopuszczalnego formatu to json, xml, ecmascript, html, i java.
except
except(<value1> : array, <value2> : array) => array
Zwraca zestaw różnic z jednej tablicy z innej porzucania duplikatów.
except([10, 20, 30], [20, 40]) => [10, 30]
expr
expr(<expr> : string) => any
Wynikiem jest wyrażenie z ciągu, które jest takie samo jak pisanie tego wyrażenia w postaci nieliteralnej. Można go użyć do przekazywania parametrów jako reprezentacji ciągów.
expr('price * discount') => any
F
factorial
factorial(<value1> : number) => long
Oblicza współczynnik liczby.
factorial(5) -> 120
false
false() => boolean
Zawsze zwraca wartość false. Użyj funkcji syntax(false()) , jeśli kolumna ma nazwę false.
(10 + 20 > 30) -> false
(10 + 20 > 30) -> false()
filter
filter(<value1> : array, <value2> : unaryfunction) => array
Filtruje elementy z tablicy, które nie spełniają podanego predykatu. Filtr oczekuje odwołania do jednego elementu w funkcji predykatu jako #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
Znajdź pierwszy element z tablicy zgodnej z warunkiem. Przyjmuje funkcję filtru, w której można adresować element w tablicy jako #item. W przypadku głęboko zagnieżdżonych map można odwoływać się do map nadrzędnych przy użyciu #item_n notacji (#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
Pobiera pierwszą wartość grupy kolumn. Jeśli drugi parametr ignoreNulls zostanie pominięty, usługa Data Factory przyjmuje wartość false.
first(sales)
first(sales, false)
flatten
flatten(<array> : array, <value2> : array ..., <value2> : boolean) => array
Spłaszczanie tablicy lub tablic w jedną tablicę. Tablice elementów niepodzielnych są zwracane niezniszczone. Ostatni argument jest opcjonalny i domyślnie ma wartość false, aby spłaszczać rekursywnie więcej niż jeden poziom głębokości.
flatten([['bojjus', 'girl'], ['gunchus', 'boy']]) => ['bojjus', 'girl', 'gunchus', 'boy']
flatten([[['bojjus', 'gunchus']]] , true) => ['bojjus', 'gunchus']
floor
floor(<value1> : number) => number
Zwraca największą liczbę całkowitą nie większą niż liczba.
floor(-0.1) -> -1
fromBase64
fromBase64(<value1> : string, <encoding type> : string) => string
Dekoduje określony ciąg zakodowany w formacie base64. Opcjonalnie można przekazać typ kodowania.
fromBase64('Z3VuY2h1cw==') -> 'gunchus'
fromBase64('SGVsbG8gV29ybGQ=', 'Windows-1252') -> 'Hello World'
fromUTC
fromUTC(<value1> : timestamp, [<value2> : string]) => timestamp
Konwertuje na sygnaturę czasową z czasu UTC. Opcjonalnie możesz przekazać strefę czasową w postaci GMT, PST, UTClub America/Cayman. Domyślnie jest ustawiona na obecną strefę czasową. Aby uzyskać dostępne formaty, zapoznaj się z klasą SimpleDateFormat języka 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
Używa operatora większego porównania. Tak samo jak > operator.
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
Używa porównania większego lub równego operatorowi. Tak samo jak >= operator.
greaterOrEqual(12, 12) -> true
('dumbo' >= 'dum') -> true
greatest
greatest(<value1> : any, ...) => any
Zwraca największą wartość z listy wartości jako danych wejściowych, pomijając wartości null. Zwraca wartość null , jeśli wszystkie dane wejściowe mają wartość 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
Sprawdza wartość kolumny według nazwy w strumieniu. Możesz przekazać opcjonalną nazwę strumienia jako drugi argument. Nazwy kolumn adresów znane w czasie projektowania według ich nazw. Obliczone dane wejściowe nie są obsługiwane, ale można użyć zamian parametrów.
hasColumn('parent')
hasError
hasError([<value1> : string]) => boolean
Sprawdza, czy element z podanym identyfikatorem jest oznaczony jako mający błąd.
Examples
hasError('assert1')
hasError('assert2')
hasPath
hasPath(<value1> : string, [<streamName> : string]) => boolean
Sprawdza, czy określona ścieżka hierarchiczna istnieje według nazwy w strumieniu. Możesz przekazać opcjonalną nazwę strumienia jako drugi argument. Nazwy/ścieżki kolumn znane w czasie projektowania powinny być adresowane tylko przy użyciu ich nazwy lub ścieżki notacji kropkowej. Obliczone dane wejściowe nie są obsługiwane, ale można użyć zamian parametrów.
hasPath('grandpa.parent.child') => boolean
hex
hex(<value1>: binary) => string
Zwraca reprezentację ciągu szesnastkowego wartości binarnej
hex(toBinary([toByte(0x1f), toByte(0xad), toByte(0xbe)])) -> '1fadbe'
hour
hour(<value1> : timestamp, [<value2> : string]) => integer
Pobiera wartość godziny znacznika czasu. Możesz przekazać opcjonalną strefę czasową w postaci GMT, PST, UTClub America/Cayman. Lokalna strefa czasowa jest używana jako domyślna. Aby uzyskać dostępne formaty, zapoznaj się z klasą SimpleDateFormat języka 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
Uzyskuje czas trwania w milisekundach na podstawie liczby godzin.
hours(2) -> 7200000L
I
iif
iif(<condition> : boolean, <true_expression> : any, [<false_expression> : any]) => any
Stosuje jedną wartość lub drugą na podstawie warunku. Jeśli druga jest nieokreślona, wartość jest uważana za NULL. Obie wartości muszą być zgodne (na przykład numeryczne i ciągowe).
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
Zwraca pierwszy element nie null, jeśli podano co najmniej dwa dane wejściowe. Ta funkcja jest równoważna coalesce funkcji.
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
Sprawdza, czy element znajduje się w tablicy.
in([10, 20, 30], 10) -> true
in(['good', 'kid'], 'bad') -> false
initCap
initCap(<value1> : string) => string
Konwertuje pierwszą literę każdego wyrazu na wielkie litery. Wyrazy są identyfikowane jako oddzielone białym znakiem.
initCap('cool iceCREAM') -> 'Cool Icecream'
instr
instr(<string> : string, <substring to find> : string) => integer
Znajduje położenie (na podstawie 1) podciągu w ciągu. Jeśli nie zostanie znaleziona, 0 zostanie zwrócona.
instr('dumbo', 'mbo') -> 3
instr('microsoft', 'o') -> 5
instr('good', 'bad') -> 0
intersect
intersect(<value1> : array, <value2> : array) => array
Zwraca zestaw przecięć różnych elementów z dwóch tablic.
intersect([10, 20, 30], [20, 40]) => [20]
isBitSet
isBitSet (<value1> : array, <value2>:integer ) => boolean
Sprawdza, czy pozycja bitowa jest ustawiona w tym zestawie bitów.
isBitSet(toBitSet([10, 32, 98]), 10) => true
isBoolean
isBoolean(<value1>: string) => boolean
Sprawdza, czy wartość ciągu jest wartością logiczną zgodnie z regułami .toBoolean()
isBoolean('true') -> true
isBoolean('no') -> true
isBoolean('microsoft') -> false
isByte
isByte(<value1> : string) => boolean
Sprawdza, czy wartość ciągu jest wartością bajtów, jeśli jest określony opcjonalny format zgodnie z regułami toByte().
isByte('123') -> true
isByte('chocolate') -> false
isDate
isDate (<value1> : string, [<format>: string]) => boolean
Sprawdza, czy wejściowy ciąg daty jest datą przy użyciu opcjonalnego formatu daty wejściowej. Aby uzyskać dostępne formaty, zapoznaj się z klasą SimpleDateFormat języka Java. Jeśli format daty wejściowej zostanie pominięty, domyślnym formatem jest yyyy-[M]M-[d]d. Akceptowane formaty to :[ 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
Sprawdza, czy wartość ciągu jest wartością dziesiętną, jeśli podano opcjonalny format zgodnie z regułami toDecimal().
isDecimal('123.45') -> true
isDecimal('12/12/2000') -> false
isDelete
isDelete([<value1> : integer]) => boolean
Sprawdza, czy wiersz powinien zostać usunięty. W przypadku przekształceń, które przyjmują więcej niż jeden strumień wejściowy, można przekazać indeks strumienia (oparty na 1). Indeks strumienia powinien mieć wartość 1 lub 2, a wartość domyślna to 1.
isDelete()
isDelete(1)
isDistinct
isDistinct(<value1> : any , <value1> : any) => boolean
Znajduje, czy kolumna lub zestaw kolumn są odrębne. Nie zlicza wartości null jako odrębnej wartości.
isDistinct(custId, custName) => boolean
isDouble
isDouble (<value1> : string, [<format>: string]) => boolean
Sprawdza, czy wartość ciągu jest podwójną wartością, jeśli podano opcjonalny format zgodnie z regułami toDouble().
isDouble('123') -> true
isDouble('$123.45' -> '$###.00') -> true
isDouble('icecream') -> false
isError
isError([<value1> : integer]) => boolean
Sprawdza, czy wiersz jest oznaczony jako błąd. W przypadku przekształceń, które przyjmują więcej niż jeden strumień wejściowy, można przekazać indeks strumienia (oparty na 1). Indeks strumienia powinien mieć wartość 1 lub 2 , a wartość domyślna to 1.
isError()
isError(1)
isFloat
isFloat (<value1> : string, [<format>: string]) => boolean
Sprawdza, czy wartość ciągu jest wartością zmiennoprzecinkową, jeśli jest określony opcjonalny format zgodnie z regułami toFloat().
isFloat('123') -> true
isFloat('$123.45' -> '$###.00') -> true
isFloat('icecream') -> false
isIgnore
isIgnore([<value1> : integer]) => boolean
Sprawdza, czy wiersz powinien być ignorowany. W przypadku przekształceń przyjmujących więcej niż jeden strumień wejściowy można przekazać indeks strumienia oparty na 1. Indeks strumienia powinien mieć wartość 1 lub 2, a wartość domyślna to 1.
isIgnore()
isIgnore(1)
isInsert
isInsert([<value1> : integer]) => boolean
Sprawdza, czy wiersz jest oznaczony do wstawiania. W przypadku przekształceń przyjmujących więcej niż jeden strumień wejściowy można przekazać indeks strumienia wejściowego rozpoczynający się od 1. Indeks strumienia powinien mieć wartość 1 lub 2, a wartość domyślna to 1.
isInsert()
isInsert(1)
isInteger
isInteger (<value1> : string, [<format>: string]) => boolean
Sprawdza, czy wartość ciągu jest wartością całkowitą, jeśli podano opcjonalny format zgodnie z regułami toInteger().
isInteger('123') -> true
isInteger('$123' -> '$###') -> true
isInteger('microsoft') -> false
isLong
isLong (<value1> : string, [<format>: string]) => boolean
Sprawdza, czy wartość ciągu jest wartością długą, jeśli podano opcjonalny format zgodnie z regułami .toLong()
isLong('123') -> true
isLong('$123' -> '$###') -> true
isLong('gunchus') -> false
isMatch
isMatch([<value1> : integer]) => boolean
Sprawdza, czy wiersz jest dopasowany do odnośnika. W przypadku przekształceń przyjmujących więcej niż jeden strumień wejściowy można przekazać indeks strumienia oparty na 1. Indeks strumienia powinien mieć wartość 1 lub 2, a wartość domyślna to 1.
isMatch()
isMatch(1)
isNan
isNan (<value1> : integral) => boolean
Sprawdza, czy wartość nie jest liczbą.
isNan(10.2) => false
isNull
isNull(<value1> : any) => boolean
Sprawdza, czy wartość to NULL.
isNull(NULL()) -> true
isNull('') -> false
isShort
isShort (<value1> : string, [<format>: string]) => boolean
Sprawdza, czy wartość ciągu jest krótką wartością, jeśli podano opcjonalny format zgodnie z regułami .toShort()
isShort('123') -> true
isShort('$123' -> '$###') -> true
isShort('microsoft') -> false
isTimestamp
isTimestamp (<value1> : string, [<format>: string]) => boolean
Sprawdza, czy wejściowy ciąg daty jest sygnaturą czasową przy użyciu opcjonalnego formatu sygnatury czasowej danych wejściowych. Aby uzyskać dostępne formaty, zapoznaj się z klasą SimpleDateFormat języka Java. Jeśli sygnatura czasowa zostanie pominięta, zostanie użyty domyślny wzorzec yyyy-[M]M-[d]d hh:mm:ss[.f...] . Możesz przekazać opcjonalną strefę czasową w postaci GMT, PST, UTClub America/Cayman. Funkcja timestamp obsługuje do milisekund dokładności z wartością 999. Aby uzyskać dostępne formaty, zapoznaj się z klasą SimpleDateFormat języka 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
Sprawdza, czy wiersz jest oznaczony do aktualizacji. W przypadku przekształceń przyjmujących więcej niż jeden strumień wejściowy można przekazać indeks (oparty na 1) strumienia. Indeks strumienia powinien mieć wartość 1 lub 2, a wartość domyślna to 1.
isUpdate()
isUpdate(1)
isUpsert
isUpsert([<value1> : integer]) => boolean
Sprawdza, czy wiersz jest oznaczony do wstawiania. W przypadku przekształceń przyjmujących więcej niż jeden strumień wejściowy można przekazać (numerowany od 1) indeks strumienia. Indeks strumienia powinien mieć wartość 1 lub 2, a wartość domyślna to 1.
isUpsert()
isUpsert(1)
J
jaroWinkler
jaroWinkler(<value1> : string, <value2> : string) => double
Pobiera odległość JaroWinkler między dwoma ciągami.
jaroWinkler('frog', 'frog') => 1.0
K
keyValues
keyValues(<value1> : array, <value2> : array) => map
Tworzy mapę klucz/wartości. Pierwszy parametr jest tablicą kluczy, a drugi to tablica wartości. Obie tablice powinny mieć równą długość.
keyValues(['bojjus', 'appa'], ['gunchus', 'ammi']) => ['bojjus' -> 'gunchus', 'appa' -> 'ammi']
kurtosis
kurtosis(<value1> : number) => double
Pobiera kurtozę kolumny.
kurtosis(sales)
kurtosisIf
kurtosisIf(<value1> : boolean, <value2> : number) => double
Pobiera wartość kurtozy dla kolumny na podstawie kryteriów.
kurtosisIf(region == 'West', sales)
L
lag
lag(<value> : any, [<number of rows to look before> : number], [<default value> : any]) => any
Pobiera wartość pierwszego parametru, który był oceniany n wierszy przed bieżącym wierszem. Drugi parametr to liczba wierszy do przeszukania wstecz, a wartość domyślna to 1. Jeśli nie ma tyle wierszy, zwracana jest wartość null, chyba że zostanie określona wartość domyślna.
lag(amount, 2)
lag(amount, 2000, 100)
last
last(<value1> : any, [<value2> : boolean]) => any
Pobiera ostatnią wartość grupy kolumn. Jeśli drugi parametr ignoreNulls zostanie pominięty, przyjmuje się wartość false.
last(sales)
last(sales, false)
lastDayOfMonth
lastDayOfMonth(<value1> : datetime) => date
Pobiera ostatnią datę miesiąca, gdy podano datę.
lastDayOfMonth(toDate('2009-01-12')) -> toDate('2009-01-31')
lead
lead(<value> : any, [<number of rows to look after> : number], [<default value> : any]) => any
Pobiera wartość pierwszego parametru obliczanego n wierszy po bieżącym wierszu. Drugi parametr to liczba wierszy, którą należy przesunąć do przodu, a wartość domyślna to 1. Jeśli nie ma tyle wierszy, zwracana jest wartość null, chyba że zostanie określona wartość domyślna.
lead(amount, 2)
lead(amount, 2000, 100)
least
least(<value1> : any, ...) => any
Używa operatora porównania mniejszego lub równego. Tak samo jak <= operator.
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
Wyodrębnia podciąg rozpoczynający się od indeksu 1 z liczbą znaków. Tak samo jak SUBSTRING(str, 1, n).
left('bojjus', 2) -> 'bo'
left('bojjus', 20) -> 'bojjus'
length
length(<value1> : string) => integer
Zwraca długość ciągu.
length('dumbo') -> 5
lesser
lesser(<value1> : any, <value2> : any) => boolean
Używa operatora porównania „mniejszy niż”. Tak samo jak < operator.
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
Używa operatora porównania mniejszego lub równego. Tak samo jak <= operator.
lesserOrEqual(12, 12) -> true
('dumbo' <= 'dum') -> false
levenshtein
levenshtein(<from string> : string, <to string> : string) => integer
Pobiera odległość levenshtein między dwoma ciągami.
levenshtein('boys', 'girls') -> 4
like
like(<string> : string, <pattern match> : string) => boolean
Używa wzorca ciągu, który jest dopasowywany dosłownie. Wyjątki są następującymi symbolami specjalnymi: _ pasuje do dowolnego znaku w danych wejściowych (podobnie jak .* w posix wyrażeniach regularnych).
% pasuje do zera lub większej liczby znaków w danych wejściowych (podobnie jak .* w wyrażeniach posix regularnych).
Znak ucieczki to "". Jeśli znak ucieczki poprzedza specjalny symbol lub inny znak ucieczki, następujący znak jest dopasowywany dosłownie. Jest to nieprawidłowe, aby uniknąć żadnego innego znaku.
like('icecream', 'ice%') -> true
locate
locate(<substring to find> : string, <string> : string, [<from index - 1-based> : integral]) => integer
Znajduje położenie (na podstawie 1) podciągu w ciągu rozpoczynającym się od określonej pozycji. Jeśli pozycja zostanie pominięta, rozpoczyna się od początku ciągu. Jeśli nie zostanie znaleziona, 0 zostanie zwrócona.
locate('mbo', 'dumbo') -> 3
locate('o', 'microsoft', 6) -> 7
locate('bad', 'good') -> 0
log
log(<value1> : number, [<value2> : number]) => double
Oblicza wartość logarytmu. W razie użycia możesz podać opcjonalną bazę lub inną liczbę Euler.
log(100, 10) -> 2
log10
log10(<value1> : number) => double
Oblicza wartość logarytmu przy podstawie 10.
log10(100) -> 2
lookup
lookup(key, key2, ...) => complex[]
Wyszukuje pierwszy wiersz z buforowanego ujścia przy użyciu określonych kluczy pasujących do kluczy z buforowanego ujścia.
cacheSink#lookup(movieId)
lower
lower(<value1> : string) => string
Małe litery ciągu.
lower('GunChus') -> 'gunchus'
lpad
lpad(<string to pad> : string, <final padded length> : integral, <padding> : string) => string
Lewa dopełnia ciąg przez podane dopełnienie, dopóki ciąg nie będzie mieć określonej długości. Jeśli długość ciągu jest równa lub większa niż określona długość, ciąg jest przycinany do tej długości.
lpad('dumbo', 10, '-') -> '-----dumbo'
lpad('dumbo', 4, '-') -> 'dumb'
ltrim
ltrim(<string to trim> : string, [<trim characters> : string]) => string
Lewe przycina ciąg znaków wiodących. Jeśli drugi parametr jest nieokreślony, usuwa białe znaki. W przeciwnym razie przycina dowolny znak określony w drugim parametrze.
ltrim(' dumbo ') -> 'dumbo '
ltrim('!--!du!mbo!', '-!') -> 'du!mbo!'
M
map
map(<value1> : array, <value2> : unaryfunction) => any
Mapuje każdy element tablicy na nowy element przy użyciu podanego wyrażenia. Funkcja map oczekuje odwołania do jednego elementu w wyrażeniu funkcji jako #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
Przekształca mapę, kojarząc klucze z nowymi wartościami. Zwraca tablicę. Przyjmuje funkcję mapowania, w której można adresować element jako #key i bieżącą wartość jako #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
Warunkowo mapuje tablicę na inną tablicę o tej samej lub mniejszej długości. Wartości mogą być dowolnego typu danych, w tym structTypes. Przyjmuje funkcję mapowania, w której można adresować element w tablicy jako #item i bieżący indeks jako #index. W przypadku głęboko zagnieżdżonych map można odwoływać się do map nadrzędnych przy użyciu notacji "#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
Mapuje każdy element tablicy na nowy element przy użyciu podanego wyrażenia. Funkcja map oczekuje odwołania do jednego elementu w funkcji wyrażenia jako #item i odwołania do indeksu elementu jako #index.
mapIndex([1, 2, 3, 4], #item + 2 + #index) -> [4, 6, 8, 10]
mapLoop
mapLoop(<value1> : integer, <value2> : unaryfunction) => any
Pętla od 1 do określonej długości, tworząca tablicę o tej długości. Przyjmuje funkcję mapowania, w której można adresować indeks w tablicy jako #index. W przypadku głęboko zagnieżdżonych map można odwoływać się do map nadrzędnych przy użyciu #index_n notacji (#index_1, #index_2) .
mapLoop(3, #index * 10) -> [10, 20, 30]
max
max(<value1> : any) => any
Pobiera maksymalną wartość kolumny.
max(sales)
maxIf
maxIf(<value1> : boolean, <value2> : any) => any
Pobiera maksymalną wartość kolumny na podstawie kryteriów.
maxIf(region == 'West', sales)
md5
md5(<value1> : any, ...) => string
Oblicza skrót MD5 zestawu kolumn o różnych typach danych pierwotnych i zwraca 32-znakowy ciąg szesnastkowy. Można go użyć do obliczenia odcisku palca dla wiersza.
md5(5, 'gunchus', 8.2, 'bojjus', true, toDate('2010-4-4')) -> '4ce8a880bd621a1ffad0bca905e1bc5a'
mean
mean(<value1> : number) => number
Pobiera średnią wartości kolumny. Tak samo jak AVG.
mean(sales)
meanIf
meanIf(<value1> : boolean, <value2> : number) => number
Pobiera średnią wartości kolumny na podstawie kryteriów. Tak samo jak avgIf.
meanIf(region == 'West', sales)
millisecond
millisecond(<value1> : timestamp, [<value2> : string]) => integer
Pobiera wartość milisekund daty. Możesz przekazać opcjonalną strefę czasową w postaci GMT, PST, UTClub America/Cayman. Lokalna strefa czasowa jest używana jako domyślna. Aby uzyskać dostępne formaty, zapoznaj się z klasą SimpleDateFormat języka Java.
millisecond(toTimestamp('2009-07-30 12:58:59.871', 'yyyy-MM-dd HH:mm:ss.SSS')) -> 871
milliseconds
milliseconds(<value1> : integer) => long
Pobiera czas trwania w milisekundach dla liczby milisekund.
milliseconds(2) -> 2L
min
min(<value1> : any) => any
Pobiera minimalną wartość kolumny.
min(sales)
minIf
minIf(<value1> : boolean, <value2> : any) => any
Pobiera minimalną wartość kolumny na podstawie kryteriów.
minIf(region == 'West', sales)
minus
minus(<value1> : any, <value2> : any) => any
Odejmuje liczby. Odejmuje liczbę dni od daty. Odejmuje czas trwania od sygnatury czasowej. Odejmuje dwie sygnatury czasowe, aby uzyskać różnicę w milisekundach. Tak samo jak - operator.
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
Pobiera wartość minuty znacznika czasu. Możesz przekazać opcjonalną strefę czasową w postaci GMT, PST, UTClub America/Cayman. Lokalna strefa czasowa jest używana jako domyślna. Aby uzyskać dostępne formaty, zapoznaj się z klasą SimpleDateFormat języka 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
Oblicza czas trwania w milisekundach dla danej liczby minut.
minutes(2) -> 120000L
mlookup
mlookup(key, key2, ...) => complex[]
Wyszukuje wszystkie pasujące wiersze z buforowanego zlewu, wykorzystując określone klucze, które odpowiadają kluczom z tego zlewu buforowanego.
cacheSink#mlookup(movieId)
mod
mod(<value1> : any, <value2> : any) => any
Pobiera modulo pary liczb. Tak samo jak % operator.
mod(20, 8) -> 4
20 % 8 -> 4
month
month(<value1> : datetime) => integer
Pobiera wartość miesiąca ze znacznika daty lub czasu.
month(toDate('2012-8-8')) -> 8
monthsBetween
monthsBetween(<from date/timestamp> : datetime, <to date/timestamp> : datetime, [<roundoff> : boolean], [<time zone> : string]) => double
Pobiera liczbę miesięcy między dwiema datami. Obliczenia można zaokrąglić. Możesz przekazać opcjonalną strefę czasową w postaci GMT, PST, UTClub America/Cayman. Lokalna strefa czasowa jest używana jako domyślna. Aby uzyskać dostępne formaty, zapoznaj się z klasą SimpleDateFormat języka Java.
monthsBetween(toTimestamp('1997-02-28 10:30:00'), toDate('1996-10-30')) -> 3.94959677
multiply
multiply(<value1> : any, <value2> : any) => any
Mnoży parę liczb. Tak samo jak * operator.
multiply(20, 10) -> 200
20 * 10 -> 200
N
negate
negate(<value1> : number) => number
Neguje liczbę. Zamienia liczby dodatnie na ujemne i odwrotnie.
negate(13) -> -13
nextSequence
nextSequence() => long
Zwraca kolejną unikatową sekwencję. Liczba jest kolejna tylko w obrębie partycji i jest poprzedzona identyfikatorem partycji.
nextSequence() == 12313112 -> false
normalize
normalize(<String to normalize> : string) => string
Normalizuje wartość ciągu na oddzielne znaki Unicode z akcentem.
regexReplace(normalize('bo²s'), `\p{M}`, '') -> 'boys'
not
not(<value1> : boolean) => boolean
Używa operatora negacji logicznej.
not(true) -> false
not(10 == 20) -> true
notEquals
notEquals(<value1> : any, <value2> : any) => boolean
Używa operatora porównania nierówności. Tak samo jak != operator.
12 != 24 -> true
'bojjus' != 'bo' + 'jjus' -> false
nTile
nTile([<value1> : integer]) => integer
Funkcja nTile dzieli wiersze dla każdej partycji okna na n przedziały od 1 do najwyżej n. Wartości wiadra różnią się co najwyżej o 1. Jeśli liczba wierszy w partycji nie jest równomiernie podzielona na liczbę zasobników, pozostałe wartości są rozdzielane pojedynczo na zasobnik, począwszy od pierwszego zasobnika. Funkcja jest przydatna nTile do obliczania tertiles, kwartylów, decyli i innych typowych statystyk podsumowania. Funkcja oblicza dwie zmienne podczas inicjowania. Rozmiar zwykłego zasobnika zawiera jeden dodatkowy wiersz dodany do niego. Obie zmienne są oparte na rozmiarze bieżącej partycji. Podczas procesu obliczania funkcja śledzi bieżący numer wiersza, bieżący numer zasobnika i numer wiersza, w którym zmienia się zasobnik (bucketThreshold). Gdy bieżący numer wiersza osiągnie limit zasobnika, wartość zasobnika zwiększa się o jeden. Próg zwiększa się o rozmiar wiadra (plus jeden dodatkowy, jeśli bieżące wiadro jest wypełnione).
nTile()
nTile(numOfBuckets)
null
null() => null
Zwraca NULL wartość. Użyj funkcji syntax(null()) , jeśli kolumna ma nazwę null. Każda operacja, która używa wartości null, skutkuje wartością 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
Używa operatora logicznego OR . Tak samo jak ||.
or(true, false) -> true
true || false -> true
originColumns
originColumns(<streamName> : string) => any
Pobiera wszystkie kolumny wyjściowe dla strumienia pochodzenia, w którym zostały utworzone kolumny. Musi być ujęta w inną funkcję.
array(toString(originColumns('source1')))
output
output() => any
Zwraca pierwszy wiersz wyników odbiornika pamięci podręcznej.
cacheSink#output()
outputs
output() => any
Zwraca cały zestaw wierszy wyjściowych wyników z bufora pamięci podręcznej.
cacheSink#outputs()
P
partitionId
partitionId() => integer
Zwraca bieżący identyfikator partycji, w ramach którego znajduje się wiersz wejściowy.
partitionId()
pMod
pMod(<value1> : any, <value2> : any) => any
Daje dodatni modulus pary liczb.
pmod(-20, 8) -> 4
power
power(<value1> : number, <value2> : number) => double
Podnosi jedną liczbę do potęgi innego.
power(10, 2) -> 100
R
radians
radians(<value1> : number) => double
Konwertuje stopnie na radiany.
radians(180) => 3.141592653589793
random
random(<value1> : integral) => double
Zwraca liczbę losową, gdy podany jest ziarno w ramach partycji. Ziarno powinno być stałą liczbą i jest używane razem z identyfikatorem partycji do tworzenia losowych wartości w zakresie (0.0-1.0).
random(1) == 1 -> false
rank
rank() => integer
Oblicza rangę wartości w grupie wartości określonych w kolejności okna według klauzuli. Wynik jest jednym plus liczbą wierszy poprzedzających lub równych bieżącemu wierszowi w kolejności partycji. Wartości generują luki w sekwencji. Funkcja rank działa nawet wtedy, gdy dane nie są sortowane i szukają zmian w wartościach.
rank()
reassociate
reassociate(<value1> : map, <value2> : binaryFunction) => map
Przekształca mapę, kojarząc klucze z nowymi wartościami. Przyjmuje funkcję mapowania, w której można adresować element jako #key i bieżącą wartość jako #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
Gromadzi elementy w tablicy. Funkcja reduce oczekuje odwołania do akumulatora i jednego elementu w pierwszym wyrażeniu funkcji jako #acc i #item. Oczekuje się, że wartość wynikowa #result będzie używana jako druga funkcja wyrażenia.
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
Wyodrębnia odpowiadający ciąg znaków dla danego wzorca wyrażeń regularnych. Ostatni parametr identyfikuje grupę dopasowania i domyślnie ustawia się na 1, jeśli jest pominięty. Służy <regex> do dopasowywania ciągu bez ucieczki. Indeks 0 zwraca wszystkie dopasowania. Bez grup dopasowań indeks 1 i większe nie zwracają żadnych wyników.
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
Sprawdza, czy ciąg jest zgodny z danym wzorcem wyrażenia regularnego. Służy <regex> do dopasowywania ciągu bez ucieczki.
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
Zastępuje wszystkie wystąpienia wzorca wyrażeń regularnych nowym podciągiem w danym ciągu. Służy <regex> do dopasowywania ciągu bez ucieczki.
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
Dzieli ciąg na podstawie ogranicznika na podstawie wyrażenia regularnego i zwraca tablicę ciągów.
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
Zamienia wszystkie wystąpienia podciągu na inny podciąg w określonym łańcuchu znaków. Jeśli ostatni parametr zostanie pominięty, wartość domyślna to pusty ciąg.
replace('doggie dog', 'dog', 'cat') -> 'catgie cat'
replace('doggie dog', 'dog', '') -> 'gie '
replace('doggie dog', 'dog') -> 'gie '
reverse
reverse(<value1> : string) => string
Odwraca ciąg.
reverse('gunchus') -> 'suhcnug'
right
right(<string to subset> : string, <number of characters> : integral) => string
Wyodrębnia podciąg o określonej liczbie znaków z prawej strony. Tak samo jak SUBSTRING(str, LENGTH(str) - n, n).
right('bojjus', 2) -> 'us'
right('bojjus', 20) -> 'bojjus'
rlike
rlike(<string> : string, <pattern match> : string) => boolean
Sprawdza, czy ciąg jest zgodny z danym wzorcem wyrażenia regularnego.
rlike('200.50', `(\d+).(\d+)`) -> true
rlike('bogus', `M[0-9]+.*`) -> false
round
round(<number> : number, [<scale to round> : number], [<rounding option> : integral]) => double
Zaokrągla liczbę w przypadku opcjonalnej skali i opcjonalnego trybu zaokrąglania. Jeśli skala zostanie pominięta, wartość domyślna to 0. Jeśli tryb zostanie pominięty, wartość domyślna to ROUND_HALF_UP(5). Wartości zaokrąglania obejmują:
ROUND_UP: metoda zaokrąglania w celu odjęcia od zera.
ROUND_DOWN: Tryb zaokrąglania w kierunku zera.
ROUND_CEILING: Tryb zaokrąglania w kierunku dodatniej nieskończoności. (Tak samo jak ROUND_UP w przypadku, gdy dane wejściowe są dodatnie. Jeśli wartość jest ujemna, zachowuje się jak ROUND_DOWN. Na przykład -1.1 stanie się -1.0 z ROUND_CEILING, a -2 z ROUND_UP.)
ROUND_FLOOR: Metoda zaokrąglania w stronę nieskończoności ujemnej. (Tak samo jak ROUND_DOWN w przypadku, gdy dane wejściowe są dodatnie. Jeśli wartość ujemna, zachowuje się jako ROUND_UP.)
ROUND_HALF_UP: Tryb zaokrąglania w kierunku "najbliższego sąsiada", chyba że obaj sąsiedzi są równoodlegli, w tym przypadku zachowuje się jak ROUND_UP. (Najczęściej używane + domyślne dla przepływu danych).
ROUND_HALF_DOWN: Tryb zaokrąglania w kierunku "najbliższego sąsiada", chyba że oba sąsiady są równodysponowane, w tym przypadku ROUND_DOWN.
ROUND_HALF_EVEN: Tryb zaokrąglania w kierunku "najbliższego sąsiada", chyba że obaj sąsiedzi są równodystansowi, w tym przypadku zaokrąglaj w kierunku parzystego sąsiada.
ROUND_UNNECESSARY: tryb zaokrąglania w celu potwierdzenia, że operacja okrężna ma dokładny wynik, więc nie jest konieczne zaokrąglanie.
round(100.123) -> 100.0
round(2.5, 0) -> 3.0
round(5.3999999999999995, 2, 7) -> 5.40
rowNumber
rowNumber() => integer
Przypisuje sekwencyjne numerowanie wierszy dla wierszy w oknie rozpoczynającym się od 1.
rowNumber()
rpad
rpad(<string to pad> : string, <final padded length> : integral, <padding> : string) => string
Wypełnia ciąg znakowy z prawej strony podanym dopełnieniem, aż ciąg osiągnie wymaganą długość. Jeśli długość ciągu jest równa lub większa niż określona długość, ciąg jest przycinany do tej długości.
rpad('dumbo', 10, '-') -> 'dumbo-----'
rpad('dumbo', 4, '-') -> 'dumb'
rpad('dumbo', 8, '<>') -> 'dumbo<><'
rtrim
rtrim(<string to trim> : string, [<trim characters> : string]) => string
Prawe przycina ciąg znaków końcowych. Jeśli drugi parametr jest nieokreślony, usuwa białe znaki. W przeciwnym razie przycina dowolny znak określony w drugim parametrze.
rtrim(' dumbo ') -> ' dumbo'
rtrim('!--!du!mbo!', '-!') -> '!--!du!mbo'
S
second
second(<value1> : timestamp, [<value2> : string]) => integer
Pobiera drugą wartość daty. Możesz przekazać opcjonalną strefę czasową w postaci GMT, PST, UTClub America/Cayman. Lokalna strefa czasowa jest używana jako domyślna. Aby uzyskać dostępne formaty, zapoznaj się z klasą SimpleDateFormat języka Java.
second(toTimestamp('2009-07-30 12:58:59')) -> 59
seconds
seconds(<value1> : integer) => long
Określa czas trwania w milisekundach dla liczby sekund.
seconds(2) -> 2000L
setBitSet
setBitSet (<value1>: array, <value2>:array) => array
Ustawia pozycje bitów w tym zestawie bitów.
setBitSet(toBitSet([10, 32]), [98]) => [4294968320L, 17179869184L]
sha1
sha1(<value1> : any, ...) => string
Oblicza skrót SHA-1 zestawu kolumn o różnych typach danych pierwotnych i zwraca 40-znakowy ciąg szesnastkowy. Można go użyć do obliczenia odcisku palca dla wiersza.
sha1(5, 'gunchus', 8.2, 'bojjus', true, toDate('2010-4-4')) -> '46d3b478e8ec4e1f3b453ac3d8e59d5854e282bb'
sha2
sha2(<value1> : integer, <value2> : any, ...) => string
Oblicza skrót SHA-2 zestawu kolumn o różnych typach danych pierwotnych w przypadku danej długości bitów, które mogą mieć tylko wartości 0(256), , 224, 256384, i 512. Można go użyć do obliczenia odcisku palca dla wiersza.
sha2(256, 'gunchus', 8.2, 'bojjus', true, toDate('2010-4-4')) -> 'afe8a553b1761c67d76f8c31ceef7f71b66a1ee6f4e6d3b5478bf68b47d06bd3'
sin
sin(<value1> : number) => double
Oblicza wartość sinusu.
sin(2) -> 0.9092974268256817
sinh
sinh(<value1> : number) => double
Oblicza wartość sinusu hiperbolicznego.
sinh(0) -> 0.0
size
size(<value1> : any) => integer
Znajduje rozmiar tablicy lub typu mapy.
size(['element1', 'element2']) -> 2
size([1,2,3]) -> 3
skewness
skewness(<value1> : number) => double
Pobiera niesymetryczność kolumny.
skewness(sales)
skewnessIf
skewnessIf(<value1> : boolean, <value2> : number) => double
Pobiera skośność kolumny według kryteriów.
skewnessIf(region == 'West', sales)
slice
slice(<array to slice> : array, <from 1-based index> : integral, [<number of items> : integral]) => array
Wyodrębnia podzbiór tablicy z pozycji. Pozycja jest numerowana od 1. Jeśli długość zostanie pominięta, wartość domyślna to koniec ciągu.
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
Sortuje tablicę przy użyciu podanej funkcji predykatu. Funkcja sort oczekuje odwołania do dwóch kolejnych elementów w funkcji wyrażenia jako #item1 i #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 Pobiera kod dla ciągu.
soundex('genius') -> 'G520'
split
split(<string to split> : string, <split characters> : string) => array
Dzieli ciąg na podstawie ogranicznika i zwraca tablicę ciągów.
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
Oblicza pierwiastek kwadratowy liczby.
sqrt(9) -> 3
startsWith
startsWith(<string> : string, <substring to check> : string) => boolean
Sprawdza, czy ciąg rozpoczyna się od podanego ciągu.
startsWith('dumbo', 'du') -> true
stddev
stddev(<value1> : number) => double
Pobiera odchylenie standardowe kolumny.
stdDev(sales)
stddevIf
stddevIf(<value1> : boolean, <value2> : number) => double
Pobiera odchylenie standardowe dla kolumny w oparciu o określone kryteria.
stddevIf(region == 'West', sales)
stddevPopulation
stddevPopulation(<value1> : number) => double
Pobiera odchylenie standardowe populacji kolumny.
stddevPopulation(sales)
stddevPopulationIf
stddevPopulationIf(<value1> : boolean, <value2> : number) => double
Pobiera odchylenie standardowe populacji kolumny na podstawie kryteriów.
stddevPopulationIf(region == 'West', sales)
stddevSample
stddevSample(<value1> : number) => double
Pobiera odchylenie standardowe próbki kolumny.
stddevSample(sales)
stddevSampleIf
stddevSampleIf(<value1> : boolean, <value2> : number) => double
Pobiera odchylenie standardowe próbki z kolumny w oparciu o określone kryteria.
stddevSampleIf(region == 'West', sales)
subDays
subDays(<date/timestamp> : datetime, <days to subtract> : integral) => datetime
Odejmowanie dni od daty lub znacznika czasu. Identyczny jak operator - dla daty.
subDays(toDate('2016-08-08'), 1) -> toDate('2016-08-07')
subMonths
subMonths(<date/timestamp> : datetime, <months to subtract> : integral) => datetime
Odejmowanie miesięcy od daty lub znacznika czasu.
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
Wyodrębnia podciąg o określonej długości z pozycji. Pozycja zaczyna się od 1. Jeśli długość zostanie pominięta, wartość domyślna to koniec ciągu.
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(
<łańcuch do podzbioru><separator>substringIndex( : łańcuch, : separator, <liczba wystąpień separatora> : całkowita]) => łańcuch
Wyodrębnia podciąg przed określoną liczbą wystąpień ogranicznika. Jeśli liczba jest dodatnia, zwracana jest wartość wszystkiego z lewej strony końcowego ogranicznika (licząc od lewej). Jeśli liczba jest ujemna, zwracane jest wszystko znajdujące się po prawej stronie ostatniego ogranicznika (licząc od prawej).
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
Pobiera sumę agregacji kolumny liczbowej.
sum(col)
sumDistinct
sumDistinct(<value1> : number) => number
Pobiera zagregowaną sumę unikatowych wartości kolumny liczbowej.
sumDistinct(col)
sumDistinctIf
sumDistinctIf(<value1> : boolean, <value2> : number) => number
Pobiera sumę zbiorczą kolumny liczbowej w oparciu o kryteria. Warunek może być oparty na dowolnej kolumnie.
sumDistinctIf(state == 'CA' && commission < 10000, sales)
sumDistinctIf(true, sales)
sumIf
sumIf(<value1> : boolean, <value2> : number) => number
Pobiera sumę wartości w kolumnie liczbowej, bazując na kryteriach. Warunek może być oparty na dowolnej kolumnie.
sumIf(state == 'CA' && commission < 10000, sales)
sumIf(true, sales)
T
tan
tan(<value1> : number) => double
Oblicza wartość tangensa.
tan(0) -> 0.0
tanh
tanh(<value1> : number) => double
Oblicza wartość tangensa hiperbolicznego.
tanh(0) -> 0.0
toBase64
toBase64(<value1> : string, <encoding type> : string]) => string
Koduje określony ciąg w base64. Opcjonalnie można przekazać typ kodowania.
toBase64('bojjus') -> 'Ym9qanVz'
toBase64('± 25000, € 5.000,- |', 'Windows-1252') -> 'sSAyNTAwMCwggCA1LjAwMCwtIHw='
toBinary
toBinary(<value1> : any) => binary
Konwertuje dowolną cyfrę, datę, sygnaturę czasową lub ciąg na reprezentację binarną.
toBinary(3) -> [0x11]
toBoolean
toBoolean(<value1> : string) => boolean
Konwertuje wartość (t, , true, yyes, 1) na true i (f, false, n, no, 0) na false i NULL dla dowolnej innej wartości.
toBoolean('true') -> true
toBoolean('n') -> false
isNull(toBoolean('truthy')) -> true
toByte
toByte(<value> : any, [<format> : string], [<locale> : string]) => byte
Konwertuje dowolną wartość liczbową lub ciągową na wartość bajtu. Do konwersji można użyć opcjonalnego formatu dziesiętnego Języka Java.
toByte(123)
123
toByte(0xFF)
-1
toByte('123')
123
toDate
toDate(<string> : any, [<date format> : string]) => date
Konwertuje wejściowy ciąg daty na datę przy użyciu opcjonalnego formatu daty wejściowej. Aby uzyskać dostępne formaty, zapoznaj się z klasą SimpleDateFormat języka Java. Jeśli format daty wejściowej zostanie pominięty, domyślnym formatem jest yyyy-[M]M-[d]d. Akceptowane formaty to :[ 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)
Konwertuje dowolną wartość liczbową lub ciąg na wartość dziesiętną. Jeśli nie określono dokładności i skali, wartość domyślna to (10,2). Do konwersji można użyć opcjonalnego formatu dziesiętnego Języka Java. Użyj opcjonalnego formatu ustawień regionalnych w postaci języka BCP47, takiego jak en-US, de lub 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
Konwertuje dowolną wartość liczbową lub ciągową na podwójną wartość. Do konwersji można użyć opcjonalnego formatu dziesiętnego Języka Java. Użyj opcjonalnego formatu ustawień regionalnych w postaci języka BCP47, takiego jak en-US, de lub 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
Konwertuje dowolną wartość liczbową lub ciągową na wartość zmiennoprzecinkową. Do konwersji można użyć opcjonalnego formatu dziesiętnego Języka Java. Obcina wszelkie podwójne.
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
Konwertuje dowolną wartość liczbową lub ciągową na wartość całkowitą. Do konwersji można użyć opcjonalnego formatu dziesiętnego Języka Java. Obcina wszelkie długie, zmiennoprzecinkowe, podwójne.
toInteger(123) -> 123
toInteger('123') -> 123
toInteger('$123', '$###') -> 123
toLong
toLong(<value> : any, [<format> : string], [<locale> : string]) => long
Konwertuje dowolną wartość liczbową lub ciągową na wartość długą. Do konwersji można użyć opcjonalnego formatu dziesiętnego Języka Java. Obcina dowolny zmiennoprzecinkowy, podwójny.
toLong(123) -> 123
toLong('123') -> 123
toLong('$123', '$###') -> 123
topN
topN(<column/expression> : any, <count> : long, <n> : integer) => array
Pobiera pierwsze N wartości dla tej kolumny na podstawie argumentu count.
topN(custId, count, 5)
topN(productId, num_sales, 10)
toShort
toShort(<value> : any, [<format> : string], [<locale> : string]) => short
Konwertuje dowolną wartość liczbową lub ciągową na krótką wartość. Do konwersji można użyć opcjonalnego formatu dziesiętnego Języka Java. Obcina dowolną liczbę całkowitą, długą, zmiennoprzecinkową, podwójną.
toShort(123) -> 123
toShort('123') -> 123
toShort('$123', '$###') -> 123
toString
toString(<value> : any, [<number format/date format> : string], [<date locale> : string]) => string
Konwertuje typ danych pierwotnych na ciąg. Można określić format liczb i dat. Jeśli nie zostanie określony, zostanie wybrana wartość domyślna systemu. Format dziesiętny Języka Java jest używany dla liczb. Aby uzyskać dostępne formaty, zapoznaj się z klasą SimpleDateFormat języka Java. Domyślny format jest yyyy-MM-dd. W przypadku daty lub znaczniku czasu można opcjonalnie określić ustawienia regionalne.
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
Konwertuje ciąg na sygnaturę czasową w przypadku korzystania z opcjonalnego formatu sygnatury czasowej. Jeśli sygnatura czasowa zostanie pominięta, zostanie użyty domyślny wzorzec yyyy-[M]M-[d]d hh:mm:ss[.f...] . Możesz przekazać opcjonalną strefę czasową w postaci GMT, PST, UTClub America/Cayman. Funkcja timestamp obsługuje do milisekund dokładności z wartością 999. Aby uzyskać dostępne formaty, zapoznaj się z klasą SimpleDateFormat języka 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
Konwertuje sygnaturę czasową na utc. Możesz przekazać opcjonalną strefę czasową w postaci GMT, PST, UTClub America/Cayman. Domyślnie jest ustawiona na obecną strefę czasową. Aby uzyskać dostępne formaty, zapoznaj się z klasą SimpleDateFormat języka 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
Zastąp jeden zestaw znaków innym zestawem znaków w ciągu. Znaki są zastępowane jeden do jednego.
translate('(bojjus)', '()', '[]') -> '[bojjus]'
translate('(gunchus)', '()', '[') -> '[gunchus'
trim
trim(<string to trim> : string, [<trim characters> : string]) => string
Przycina ciąg znaków wiodących i końcowych. Jeśli drugi parametr jest nieokreślony, usuwa białe znaki. W przeciwnym razie przycina dowolny znak określony w drugim parametrze.
trim(' dumbo ') -> 'dumbo'
trim('!--!du!mbo!', '-!') -> 'dumbo'
true
true() => boolean
Zawsze zwraca wartość true. Użyj funkcji syntax(true()) , jeśli kolumna ma nazwę true.
(10 + 20 == 30) -> true
(10 + 20 == 30) -> true()
typeMatch
typeMatch(<type> : string, <base type> : string) => boolean
Pasuje do typu kolumny. Można używać go tylko w wyrażeniach wzorca. Funkcja number pasuje do short, int, long, double, float lub decimal. Funkcja integral pasuje do short, integer, long. Funkcja fractional obsługuje typy double, float, decimal. Funkcja datetime odpowiada typowi daty lub sygnatury czasowej.
typeMatch(type, 'number')
typeMatch('date', 'datetime')
U
unescape
unescape(<string_to_escape> : string, <format> : string) => string
Unescapes ciąg zgodnie z formatem. Wartości literałów dla dopuszczalnych formatów to json, xml, ecmascript, html i java.
unescape('{\\\\\"value\\\\\": 10}', 'json')
'{\\\"value\\\": 10}'
unfold
unfold (<value1>: array) => any
Rozwija tablicę w zestawie wierszy i powtarza wartości pozostałych kolumn w każdym wierszu.
unfold(addresses) => any
unfold( @(name = salesPerson, sales = salesAmount) ) => any
unhex
unhex(<value1>: string) => binary
Anuluje wartość binarną z reprezentacji ciągu. Można go użyć z elementem sha2, md5 aby przekonwertować ciąg na reprezentację binarną.
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
Zwraca zestaw związków unikatowych elementów z dwóch tablic.
union([10, 20, 30], [20, 40]) => [10, 20, 30, 40]
upper
upper(<value1> : string) => string
Wielkie litery ciągu.
upper('bojjus') -> 'BOJJUS'
uuid
uuid() => string
Zwraca wygenerowany identyfikator UUID.
uuid()
V
variance
variance(<value1> : number) => double
Pobiera wariancję kolumny.
variance(sales)
varianceIf
varianceIf(<value1> : boolean, <value2> : number) => double
Pobiera wariancję kolumny na podstawie kryteriów.
varianceIf(region == 'West', sales)
variancePopulation
variancePopulation(<value1> : number) => double
Pobiera wariancję populacji kolumny.
variancePopulation(sales)
variancePopulationIf
variancePopulationIf(<value1> : boolean, <value2> : number) => double
Pobiera wariancję populacji kolumny na podstawie kryteriów.
variancePopulationIf(region == 'West', sales)
varianceSample
varianceSample(<value1> : number) => double
Pobiera niestronną wariancję kolumny.
varianceSample(sales)
varianceSampleIf
varianceSampleIf(<value1> : boolean, <value2> : number) => double
Pobiera niestronną wariancję kolumny na podstawie kryteriów.
varianceSampleIf(region == 'West', sales)
W
weekOfYear
weekOfYear(<value1> : datetime) => integer
Pobiera tydzień roku, gdy podano datę.
weekOfYear(toDate('2008-02-20')) -> 8
weeks
weeks(<value1> : integer) => long
Pobiera czas trwania w milisekundach dla liczby tygodni.
weeks(2) -> 1209600000L
X
xor
xor(<value1> : boolean, <value2> : boolean) => boolean
Używa operatora logicznego XOR . Tak samo jak ^ operator.
xor(true, false) -> true
xor(true, true) -> false
true ^ false -> true
Y
year
year(<value1> : datetime) => integer
Pobiera wartość roku daty.
year(toDate('2012-8-8')) -> 2012
Treści powiązane
- Lista wszystkich funkcji agregujących.
- Lista wszystkich funkcji tablicy.
- Lista wszystkich buforowanych funkcji wyszukiwania.
- Lista wszystkich funkcji konwersji.
- Lista wszystkich funkcji daty i godziny.
- Lista wszystkich funkcji wyrażeń.
- Lista wszystkich funkcji mapy.
- Lista wszystkich funkcji metafunkcyjnych.
- Lista wszystkich funkcji okna.
- Dowiedz się, jak używać konstruktora wyrażeń.