Użycie wyrażenia przekształcania danych w przepływie danych mapowania

DOTYCZY: Azure Data Factory Azure Synapse Analytics

Napiwek

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 usłudze Azure Data Factory, jak i w potokach usługi Azure Synapse. Ten artykuł dotyczy przepływów danych mapowania. Jeśli dopiero zaczynasz transformacje, zapoznaj się z artykułem wprowadzającym Przekształcanie danych przy użyciu przepływu danych mapowania.

Poniższe artykuły zawierają 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:

Alfabetyczna lista wszystkich funkcji

Poniżej znajduje się alfabetyczna lista wszystkich funkcji dostępnych w przepływach danych mapowania.

A

abs

abs(<value1> : number) => number

Wartość bezwzględna liczby.

  • abs(-20) -> 20
  • abs(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 kilku dni. Dodaje czas trwania do znacznika czasu. Dołącza jedną tablicę o podobnym typie do innego. Tak samo jak operator +.

  • add(10, 20) -> 30
  • 10 + 20 -> 30
  • add('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

Dodaj dni do znacznika czasu lub daty. Taki sam 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

Dodaj miesiące do znacznika czasu lub daty. 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

Operator logiczny AND. Tak samo jak &

  • and(true, false) -> false
  • true && 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') -> 65
  • ascii('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.

Przykłady

  • 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ślną wartością jest 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 jest oparty na 1. Indeks poza granicami powoduje wartość null. Znajduje wartość na mapie przy użyciu 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

Na podstawie kryteriów uzyskuje się średnią wartości kolumny.

  • 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. Wartości liczbowe, ciągowe i data/godzina można porównać

  • between(10, 5, 24)
  • true
  • between(currentDate(), currentDate() + 10, currentDate() + 20)
  • false

bitwiseAnd

bitwiseAnd(<value1> : integral, <value2> : integral) => integral

Operator bitowy And w typach całkowitych. Tak samo jak operator i

  • bitwiseAnd(0xf4, 0xef)
  • 0xe4
  • (0xf4 & 0xef)
  • 0xe4

bitwiseOr

bitwiseOr(<value1> : integral, <value2> : integral) => integral

Operator bitowy or w różnych typach całkowitych. Takie same jak | Operator

  • bitwiseOr(0xf4, 0xef)
  • 0xff
  • (0xf4 | 0xef)
  • 0xff

bitwiseXor

bitwiseXor(<value1> : any, <value2> : any) => any

Operator bitowy or w różnych typach całkowitych. Takie same 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, biorąc pod uwagę długość bitu, które mogą być wielokrotnościami 8 z zakresu od 8 do 512. Może służyć do obliczania 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 typach danych pierwotnych, biorąc pod uwagę długość bitu, które mogą być wielokrotnościami 8 z zakresu od 8 do 512. Może służyć do obliczania 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

Znajdź element podrzędny w strukturze lub tablicy struktury. Jeśli istnieje wiele dopasowań, zostanie zwrócone pierwsze dopasowanie. Jeśli wartość NULL nie jest zgodna, zwraca wartość NULL. Zwracana wartość musi być typem przekonwertowanym przez jedną z akcji konwersji typu (? data, ? ciąg ...). Nazwy kolumn znane w czasie projektowania powinny być adresowane tylko według ich nazwy. Obliczone dane wejściowe nie są obsługiwane, ale można użyć podstawień 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 wartość NULL nie jest zgodna, zwraca wartość NULL. Zwracana wartość musi być typu konwertowana przez jedną z funkcji konwersji typów (TO_DATE, TO_STRING ...). Nazwy kolumn znane w czasie projektowania powinny być adresowane tylko według ich nazwy. Obliczone dane wejściowe nie są obsługiwane, ale można użyć podstawień 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 (toDate, toString, ...). Nazwy kolumn znane w czasie projektowania powinny być adresowane tylko według ich nazwy. Obliczone dane wejściowe nie są obsługiwane, ale można użyć podstawień parametrów.

  • toString(byNames(['parent', 'child']))
  • byNames(['parent']) ? string
  • toLong(byNames(['income']))
  • byNames(['income']) ? long
  • toBoolean(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 wartość NULL nie jest zgodna, zwraca wartość NULL. Zwracana wartość musi być typu konwertowana przez jedną z funkcji konwersji typów (TO_DATE, TO_STRING ...). Nazwy kolumn znane w czasie projektowania powinny być adresowane tylko według ich nazwy. Obliczone dane wejściowe nie są obsługiwane, ale można użyć podstawień 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 wartość NULL nie jest zgodna, zwraca wartość NULL. Zwracana wartość musi być konwertowana przez jedną z funkcji konwersji typów (TO_DATE, TO_STRING ...) Nazwy kolumn znane w czasie projektowania powinny być adresowane tylko według ich nazwy. Obliczone dane wejściowe nie są obsługiwane, ale można użyć podstawień 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 kolumn/ścieżki znane w czasie projektowania powinny być adresowane tylko przez ich nazwę lub ścieżkę notacji kropkowej. Obliczone dane wejściowe nie są obsługiwane, ale można użyć podstawień parametrów.

  • byPath('grandpa.parent.child') => column

byPosition

byPosition(<position> : integer) => any

Wybiera wartość kolumny według względnej pozycji (opartej na 1) w strumieniu. Jeśli pozycja jest poza granicami, zwraca wartość NULL. Zwracana wartość musi być konwertowana przez jedną z funkcji konwersji typów (TO_DATE, TO_STRING ...) Obliczone dane wejściowe nie są obsługiwane, ale można użyć podstawień 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 warunków naprzemiennych stosuje jedną wartość lub drugą. Jeśli liczba danych wejściowych jest parzysta, dla ostatniego warunku domyślnie jest ustawiona wartość 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')) -> true
  • case(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 odpowiednikiem znaku (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) -> 10
  • coalesce(toString(null), toString(null), 'dumbo', 'bo', 'go') -> 'dumbo'

collect

collect(<value1> : any) => array

Zbiera wszystkie wartości wyrażenia w zagregowanej grupie w tablicy. Struktury można zbierać i przekształcać w alternatywne struktury podczas tego procesu. Liczba elementów będzie 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. Struktury można zbierać i przekształcać w alternatywne struktury podczas tego procesu. Liczba elementów będzie 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 ADF 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, wartość dodatnia, 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 + z ciągami.

  • 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 wartość true, jeśli dowolny element w podanej tablicy daje wartość true w podanym predykacie. Zawiera 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 opcjonalne kolumny, ignoruje wartości NULL 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

Na podstawie kryteriów pobiera zagregowaną liczbę wartości. Jeśli zostanie określona opcjonalna kolumna, zignoruje wartości NULL w liczbie.

  • 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

Na podstawie kryteriów pobiera kowariancję populacji dwóch kolumn.

  • 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

Na podstawie kryteriów pobiera próbną kowariancję dwóch kolumn.

  • covarianceSampleIf(region == 'West', sales, profit)

crc32

crc32(<value1> : any, ...) => long

Oblicza skrót CRC32 zestawu różnych pierwotnych typów danych na podstawie długości bitów, które mogą być wartościami 0(256), 224, 256, 384, 512. Może służyć do obliczania 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 będą 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", "UTC", "America/Cayman". Lokalna strefa czasowa centrum danych/regionu fabryki danych jest używana jako domyślna. Zapoznaj się z klasą SimpleDateFormat języka Java, aby uzyskać dostępne formaty. https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html.

  • 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żący znacznik czasu, gdy zadanie zaczyna działać z lokalną strefą czasową.

  • currentTimestamp() == toTimestamp('2250-12-31 12:12:12') -> false

currentUTC

currentUTC([<value1> : string]) => timestamp

Pobiera bieżący 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", "PST", "UTC", "America/Cayman". Domyślnie jest używana bieżąca strefa czasowa. Zapoznaj się z klasą SimpleDateFormat języka Java, aby uzyskać dostępne formaty. https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html. 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 z daną datą.

  • dayOfMonth(toDate('2018-06-08')) -> 8

dayOfWeek

dayOfWeek(<value1> : datetime) => integer

Pobiera dzień tygodnia z daną datą. 1 - niedziela, 2 - poniedziałek ..., 7 - sobota.

  • dayOfWeek(toDate('2018-06-08')) -> 6

dayOfYear

dayOfYear(<value1> : datetime) => integer

Pobiera dzień roku, biorąc pod uwagę datę.

  • 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. Drugi (opcjonalny) argument może służyć do określenia zestawu znaków do użycia — "US-ASCII", "ISO-8859-1", "UTF-8" (ustawienie domyślne), "UTF-16BE", "UTF-16LE", "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 spowodują przerw w sekwencji. Funkcja Dense Rank 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 — "US-ASCII", "ISO-8859-1", "UTF-8" (ustawienie domyślne), "UTF-16BE", "UTF-16LE", "UTF-16"

  • encode('abc', 'US-ASCII') -> array(toByte(97),toByte(98),toByte(99))

Ciąg wejściowy: ciąg, Charset: string) => binary

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

Operator porównania równa się. Taki sam 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

Porównanie równa się operatorowi ignorujące wielkość liter. 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", "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

Powoduje wyrażenie z ciągu. Jest to samo, co pisanie tego wyrażenia w postaci niesłownej. Może to sł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 istnieje kolumna o nazwie "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 notacji #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

Pobiera pierwszą wartość grupy kolumn. Jeśli drugi parametr ignoreNulls zostanie pominięty, przyjmuje się wartość false.

  • first(sales)
  • first(sales, false)

flatten

flatten(<array> : array, <value2> : array ..., <value2> : boolean) => array

Płaska tablica lub tablice 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 dany 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 znacznik czasu z utc. Opcjonalnie możesz przekazać strefę czasową w postaci "GMT", "PST", "UTC", "America/Cayman". Domyślnie jest używana bieżąca strefa czasowa. Zapoznaj się z klasą SimpleDateFormat języka Java, aby uzyskać dostępne formaty. https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html.

  • 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

Operator 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

Porównanie większe niż lub równe operator. Tak samo jak >= operator.

  • greaterOrEqual(12, 12) -> true
  • ('dumbo' >= 'dum') -> true

greatest

greatest(<value1> : any, ...) => any

Zwraca największą wartość na liście wartości jako dane wejściowe 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 znane w czasie projektowania powinny być adresowane tylko według ich nazwy. Obliczone dane wejściowe nie są obsługiwane, ale można użyć podstawień parametrów.

  • hasColumn('parent')

hasError

hasError([<value1> : string]) => boolean

Sprawdza, czy potwierdzenie z podanym identyfikatorem jest oznaczone jako błąd.

Przykłady

  • 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 kolumn/ścieżki znane w czasie projektowania powinny być adresowane tylko przez ich nazwę lub ścieżkę notacji kropkowej. Obliczone dane wejściowe nie są obsługiwane, ale można użyć podstawień 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", "UTC", "America/Cayman". Lokalna strefa czasowa jest używana jako domyślna. Zapoznaj się z klasą SimpleDateFormat języka Java, aby uzyskać dostępne formaty. https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html.

  • hour(toTimestamp('2009-07-30 12:58:59')) -> 12
  • hour(toTimestamp('2009-07-30 12:58:59'), 'PST') -> 12

hours

hours(<value1> : integer) => long

Czas trwania w milisekundach przez liczbę godzin.

  • hours(2) -> 7200000L

I

iif

iif(<condition> : boolean, <true_expression> : any, [<false_expression> : any]) => any

Na podstawie warunku stosuje jedną wartość lub drugą. Jeśli inny jest nieokreślony, jest uważany za wartość NULL. Obie wartości muszą być zgodne(numeryczne, ciąg...).

  • 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

Biorąc pod uwagę co najmniej dwa dane wejściowe, zwraca pierwszy element nie null. Ta funkcja jest równoważna łączeniem.

  • 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. Wartość 0 jest zwracana, jeśli nie zostanie znaleziona.

  • 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 2 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 podaną jako 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, zobacz SimpleDateFormat języka Java. Jeśli format daty wejściowej zostanie pominięty, domyślny format to yyyy-[M]M-[d]d. Zaakceptowane 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ą podaną jako opcjonalny format zgodnie z regułami toDecimal()

  • isDecimal('123.45') -> true
  • isDecimal('12/12/2000') -> false

isDelete

isDelete([<value1> : integer]) => boolean

Sprawdza, czy wiersz jest oznaczony do usunięcia. W przypadku przekształceń przyjmujących więcej niż jeden strumień wejściowy można przekazać (oparty na 1) indeksie strumienia. 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ą podaną jako 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ń przyjmujących więcej niż jeden strumień wejściowy można przekazać (oparty na 1) indeksie strumienia. 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ą w formacie opcjonalnym zgodnie z regułami toFloat()

  • isFloat('123') -> true
  • isFloat('$123.45' -> '$###.00') -> true
  • isFloat('icecream') -> false

isIgnore

isIgnore([<value1> : integer]) => boolean

Sprawdza, czy wiersz jest oznaczony jako ignorowany. W przypadku przekształceń przyjmujących więcej niż jeden strumień wejściowy można przekazać (oparty na 1) indeksie strumienia. 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ć (oparty na 1) indeksie strumienia. 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ą podaną jako 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ą, biorąc pod uwagę 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ć (oparty na 1) indeksie strumienia. Indeks strumienia powinien mieć wartość 1 lub 2, a wartość domyślna to 1.

  • isMatch()
  • isMatch(1)

isNan

isNan (<value1> : integral) => boolean

Sprawdź, czy nie jest to liczba.

  • isNan(10.2) => false

isNull

isNull(<value1> : any) => boolean

Sprawdza, czy wartość ma wartość NULL.

  • isNull(NULL()) -> true
  • isNull('') -> false

isShort

isShort (<value1> : string, [<format>: string]) => boolean

Sprawdza, czy wartość ciągu jest krótką wartością podaną jako 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 znacznikiem czasu przy użyciu opcjonalnego formatu znacznika czasu wejściowego. Aby uzyskać dostępne formaty, zobacz SimpleDateFormat języka Java. Jeśli znacznik czasu zostanie pominięty, 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", "UTC", "America/Cayman". Znacznik czasu obsługuje maksymalnie milisekundę dokładności z wartością 999 Zapoznaj się z formatem SimpleDateFormat języka Java, aby uzyskać dostępne formaty.

  • 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ć (oparty na 1) indeksie 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ć (oparty na 1) indeksie 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

tys.

keyValues

keyValues(<value1> : array, <value2> : array) => map

Tworzy mapę klucz/wartości. Pierwszy parametr to tablica 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

Na podstawie kryteriów pobiera kurtozę kolumny.

  • kurtosisIf(region == 'West', sales)

L

lag

lag(<value> : any, [<number of rows to look before> : number], [<default value> : any]) => any

Pobiera wartość pierwszego parametru ocenianego n wierszy przed bieżącym wierszem. Drugi parametr to liczba wierszy do wyszukania 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 z 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 ocenianego n wierszy po bieżącym wierszu. Drugi parametr to liczba wierszy 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

Porównanie mniejsze niż lub równe operator. 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 PODSTRING(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

Operator less porównania. 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

Porównanie mniejsze niż lub równe operator. 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

Wzorzec jest ciągiem dopasowanym dosłownie. Wyjątki są następującymi symbolami specjalnymi: _ pasuje do dowolnego znaku w danych wejściowych (podobnie jak w wyrażeniach regularnych) % pasuje do posix zera lub większej liczby znaków w danych wejściowych (podobnych do .* 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 pozycję (1 na podstawie) podciągu w ciągu rozpoczynającym określoną pozycję. Jeśli pozycja zostanie pominięta, zostanie ona uznana od początku ciągu. Wartość 0 jest zwracana, jeśli nie zostanie znaleziona.

  • locate('mbo', 'dumbo') -> 3
  • locate('o', 'microsoft', 6) -> 7
  • locate('bad', 'good') -> 0

log

log(<value1> : number, [<value2> : number]) => double

Oblicza wartość dziennika. Opcjonalną bazę można podać w przeciwnym razie numer Eulera.

  • log(100, 10) -> 2

log10

log10(<value1> : number) => double

Oblicza wartość dziennika na podstawie 10 baz.

  • 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 nie będzie mieć określonej długości. Jeśli ciąg jest równy lub większy niż długość, zostanie przycięty do 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, przycina biały znak. 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

Mapy każdy element tablicy do nowego elementu przy użyciu podanego wyrażenia. Mapowanie oczekuje odwołania do jednego elementu w funkcji wyrażenia 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 #item_[n](#item_1, #index_1...) notacji.

  • 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

Mapy każdy element tablicy do nowego elementu przy użyciu podanego wyrażenia. Mapowanie 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ętle od 1 do długości, aby utworzyć 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 notacji #index_n(#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

Na podstawie kryteriów pobiera maksymalną wartość kolumny.

  • 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że służyć do obliczania 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 średnia.

  • mean(sales)

meanIf

meanIf(<value1> : boolean, <value2> : number) => number

Na podstawie kryteriów uzyskuje średnią wartości kolumny. 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", "UTC", "America/Cayman". Lokalna strefa czasowa jest używana jako domyślna. Zapoznaj się z klasą SimpleDateFormat języka Java, aby uzyskać dostępne formaty. https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html.

  • millisecond(toTimestamp('2009-07-30 12:58:59.871', 'yyyy-MM-dd HH:mm:ss.SSS')) -> 871

milliseconds

milliseconds(<value1> : integer) => long

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

Na podstawie kryteriów pobiera minimalną wartość kolumny.

  • minIf(region == 'West', sales)

minus

minus(<value1> : any, <value2> : any) => any

Odejmuje liczby. Odejmowanie liczby dni od daty. Odejmij czas trwania od znacznika czasu. Odejmij dwa znaczniki czasu, aby uzyskać różnicę w milisekundach. Taki sam 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", "UTC", "America/Cayman". Lokalna strefa czasowa jest używana jako domyślna. Zapoznaj się z klasą SimpleDateFormat języka Java, aby uzyskać dostępne formaty. https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html.

  • minute(toTimestamp('2009-07-30 12:58:59')) -> 58
  • minute(toTimestamp('2009-07-30 12:58:59'), 'PST') -> 58

minutes

minutes(<value1> : integer) => long

Czas trwania w milisekundach przez liczbę minut.

  • minutes(2) -> 120000L

mlookup

mlookup(key, key2, ...) => complex[]

Wyszukuje wszystkie pasujące wiersze z buforowanego ujścia przy użyciu określonych kluczy pasujących do kluczy z buforowanego ujścia.

  • cacheSink#mlookup(movieId)

mod

mod(<value1> : any, <value2> : any) => any

Modulo pary liczb. Taki sam jak operator %.

  • mod(20, 8) -> 4
  • 20 % 8 -> 4

month

month(<value1> : datetime) => integer

Pobiera wartość miesiąca daty lub znacznika 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", "UTC", "America/Cayman". Lokalna strefa czasowa jest używana jako domyślna. Zapoznaj się z klasą SimpleDateFormat języka Java, aby uzyskać dostępne formaty. https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html.

  • 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 partitionId.

  • 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

Operator negacji logicznej.

  • not(true) -> false
  • not(10 == 20) -> true

notEquals

notEquals(<value1> : any, <value2> : any) => boolean

Porównanie nie równa się operatorowi. Taki sam 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 zasobniki z zakresu od 1 do co najwyżej n. Wartości zasobnika będą się różnić 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 będzie miał dodany do niego jeden dodatkowy wiersz. 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 zasobnik zmieni się (bucketThreshold). Gdy bieżąca liczba wierszy osiągnie próg zasobnika, wartość zasobnika jest zwiększana o jeden, a próg jest zwiększany przez rozmiar zasobnika (plus jeden dodatkowy, jeśli jest wypełniony bieżący zasobnik).

  • nTile()
  • nTile(numOfBuckets)

null

null() => null

Zwraca wartość NULL. Użyj funkcji syntax(null()) , jeśli istnieje kolumna o nazwie "null". Każda operacja, która używa, spowoduje wartość 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

Operator logiczny OR. Takie same 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 ujścia pamięci podręcznej

  • cacheSink#output()

outputs

output() => any

Zwraca cały zestaw wierszy wyjściowych wyników ujścia pamięci podręcznej

  • cacheSink#outputs()

P

partitionId

partitionId() => integer

Zwraca bieżący identyfikator partycji, w których znajduje się wiersz wejściowy.

  • partitionId()

pMod

pMod(<value1> : any, <value2> : any) => any

Modulo dodatnie 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) => long

Zwraca liczbę losową przy użyciu opcjonalnego inicjatora w ramach partycji. Inicjator powinien być stałą wartością i jest używany z identyfikatorem partitionId do generowania wartości losowych

  • 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 spowodują 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 Redukcji oczekuje odwołania do akumulatora i jednego elementu w pierwszej funkcji wyrażenia jako #acc i #item i oczekuje wynikowej wartości jako #result do użycia w drugiej funkcji 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ębnij pasujący podciąg dla danego wzorca wyrażeń regularnych. Ostatni parametr identyfikuje grupę dopasowania i jest domyślnie ustawiony na 1, jeśli pominięto. Użyj <regex>(cudzysłowu wstecznego), aby dopasować ciąg bez ucieczki. Indeks 0 zwraca wszystkie dopasowania. Bez grup dopasowania indeks 1 lub nowszy nie zwróci żadnego wyniku.

  • 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. Użyj <regex>(cudzysłowu wstecznego), aby dopasować ciąg 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ąp wszystkie wystąpienia wzorca wyrażeń regularnych innym podciągem w danym ciągu Użyj <regex>(cudzysłów wstecznych), aby dopasować ciąg 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

Zastąp wszystkie wystąpienia podciągów innym podciągem w danym ciągu. 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(<string to subset> : string, <number of characters> : integral) => string

Wyodrębnia podciąg z liczbą znaków z prawej strony. Tak samo jak PODSTRING(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ę, biorąc pod uwagę opcjonalną skalę i opcjonalny tryb 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ą

  1. ROUND_UP — tryb zaokrąglania w celu zaokrąglenia od zera.
  2. ROUND_DOWN — tryb zaokrąglania do zera.
  3. ROUND_CEILING — tryb zaokrąglania w kierunku nieskończoności dodatniej. [Tak samo jak ROUND_UP, jeśli dane wejściowe są dodatnie. Jeśli wartość ujemna, zachowuje się jako ROUND_DOWN. Ex = -1.1 będzie -1.0 z ROUND_CEILING i -2 z ROUND_UP]
  4. ROUND_FLOOR — tryb zaokrąglania w kierunku nieskończoności ujemnej. [Tak samo jak ROUND_DOWN, jeśli dane wejściowe są dodatnie. Jeśli wartość ujemna, zachowuje się jako ROUND_UP]
  5. ROUND_HALF_UP — tryb zaokrąglania do "najbliższego sąsiada", chyba że oba sąsiady są równodysponowane, w tym przypadku ROUND_UP. [Najbardziej typowe + domyślne dla przepływu danych].
  6. 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.
  7. ROUND_HALF_EVEN — tryb zaokrąglania w kierunku "najbliższego sąsiada", chyba że oba sąsiady są równodysponowane, w tym przypadku zaokrąglaj w kierunku parzystego sąsiada.
  8. ROUND_UNNECESSARY — tryb zaokrąglania w celu potwierdzenia, że operacja okrężna ma dokładny wynik, dlatego 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

Prawe wypełnienie ciągu przez podane dopełnienie, dopóki nie będzie mieć określonej długości. Jeśli ciąg jest równy lub większy niż długość, zostanie przycięty do 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, przycina biały znak. 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", "UTC", "America/Cayman". Lokalna strefa czasowa jest używana jako domyślna. Zapoznaj się z klasą SimpleDateFormat języka Java, aby uzyskać dostępne formaty. https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html.

  • second(toTimestamp('2009-07-30 12:58:59')) -> 59

seconds

seconds(<value1> : integer) => long

Czas trwania w milisekundach przez liczbę 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że służyć do obliczania 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 na podstawie długości bitów, które mogą zawierać tylko wartości 0(256), 224, 256, 384, 512. Może służyć do obliczania 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

Na podstawie kryteriów pobiera niesymetryczność kolumny.

  • 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 oparta na 1. Jeśli długość zostanie pominięta, zostanie ona domyślnie ustawiona na 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

Na podstawie kryteriów pobiera odchylenie standardowe kolumny.

  • stddevIf(region == 'West', sales)

stddevPopulation

stddevPopulation(<value1> : number) => double

Pobiera odchylenie standardowe populacji kolumny.

  • stddevPopulation(sales)

stddevPopulationIf

stddevPopulationIf(<value1> : boolean, <value2> : number) => double

Na podstawie kryteriów pobiera odchylenie standardowe populacji kolumny.

  • stddevPopulationIf(region == 'West', sales)

stddevSample

stddevSample(<value1> : number) => double

Pobiera odchylenie standardowe próbki kolumny.

  • stddevSample(sales)

stddevSampleIf

stddevSampleIf(<value1> : boolean, <value2> : number) => double

Na podstawie kryteriów pobiera przykładowe odchylenie standardowe kolumny.

  • stddevSampleIf(region == 'West', sales)

subDays

subDays(<date/timestamp> : datetime, <days to subtract> : integral) => datetime

Odejmij dni od daty lub znacznika czasu. Taki sam 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 jest oparta na 1. Jeśli długość zostanie pominięta, zostanie ona domyślnie ustawiona na 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(<string to subset><delimiter substringIndex( : string, : string, : string, <count of delimiter>occurences> : integral]) = string>

Wyodrębnia podciąg przed count wystąpieniami ogranicznika. Jeśli count jest dodatni, zwracana jest cała część końcowego ogranicznika (licząc od lewej). Jeśli count jest ujemna, zwracana jest cała część końcowego 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

Na podstawie kryteriów pobiera sumę agregowaną kolumny liczbowej. Warunek może być oparty na dowolnej kolumnie.

  • sumDistinctIf(state == 'CA' && commission < 10000, sales)
  • sumDistinctIf(true, sales)

sumIf

sumIf(<value1> : boolean, <value2> : number) => number

Na podstawie kryteriów pobiera sumę agregowaną kolumny liczbowej. 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 dany 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ą wartość liczbową/datę/znacznik czasu/ciąg na reprezentację binarną.

  • toBinary(3) -> [0x11]

toBoolean

toBoolean(<value1> : string) => boolean

Konwertuje wartość wartości ('t', 'true', 'y', 'yes', '1') na true i ('f', 'false', 'n', 'no', '0') na false i NULL dla każdej 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. Na potrzeby konwersji można użyć opcjonalnego formatu dziesiętnego 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. Zapoznaj się z klasą SimpleDateFormat języka Java, aby uzyskać dostępne formaty. Jeśli format daty wejściowej zostanie pominięty, domyślny format to rrrr-[M]M-[d]d].d. Akceptowane formaty to:[ rrrr, y-[M]M, yy-[M]M-[M-[d]d, y-[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 precyzji i skali, wartość domyślna to (10,2). Na potrzeby konwersji można użyć opcjonalnego formatu dziesiętnego Java. Opcjonalny format ustawień regionalnych w postaci języka BCP47, takiego jak 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

Konwertuje dowolną wartość liczbową lub ciągową na podwójną wartość. Na potrzeby konwersji można użyć opcjonalnego formatu dziesiętnego Java. Opcjonalny format ustawień regionalnych w postaci języka BCP47, takiego jak 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

Konwertuje dowolną wartość liczbową lub ciągową na wartość zmiennoprzecinkową. Na potrzeby konwersji można użyć opcjonalnego formatu dziesiętnego 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ą. Na potrzeby konwersji można użyć opcjonalnego formatu dziesiętnego 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ą. Na potrzeby konwersji można użyć opcjonalnego formatu dziesiętnego 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 n pierwszych 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ść. Na potrzeby konwersji można użyć opcjonalnego formatu dziesiętnego 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 pierwotny typ danych na ciąg. W przypadku liczb i dat można określić format. Jeśli nie określono ustawienia domyślnego systemu, zostanie wybrana. Format dziesiętny Języka Java jest używany dla liczb. Aby uzyskać wszystkie możliwe formaty dat, zapoznaj się z tematem Java SimpleDateFormat; domyślny format to yyyy-MM-dd. W przypadku znacznika daty lub znacznika 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 znacznik czasu, biorąc pod uwagę opcjonalny format znacznika czasu. Jeśli znacznik czasu zostanie pominięty domyślny wzorzec rrrr-[M]M-[d]d hh:mm:ss[.f...] jest używany. Możesz przekazać opcjonalną strefę czasową w postaci "GMT", "PST", "UTC", "America/Cayman". Znacznik czasu obsługuje do milisekund dokładności z wartością 999. Zapoznaj się z klasą SimpleDateFormat języka Java, aby uzyskać dostępne formaty. https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html.

  • 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 znacznik czasu na utc. Możesz przekazać opcjonalną strefę czasową w postaci "GMT", "PST", "UTC", "America/Cayman". Domyślnie jest używana bieżąca strefa czasowa. Zapoznaj się z klasą SimpleDateFormat języka Java, aby uzyskać dostępne formaty. https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html.

  • 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 mają od 1 do 1 zamiany.

  • 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, przycina biały znak. 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 istnieje kolumna o nazwie "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ć tylko w wyrażeniach wzorca.liczba pasuje do krótkich, całkowitych, długich, podwójnych, zmiennoprzecinkowych lub dziesiętnych, całkowitoliczbowych dopasowań krótkich, całkowitych, długich, ułamkowych dopasowań podwójnych, zmiennoprzecinkowych, dziesiętnych i datetime pasuje do typu daty lub znacznika czasu.

  • 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łu dopuszczalnego formatu to "json", "xml", "ecmascript", "html", "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że to być używane z sha2, md5 do konwersji z ciągu 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 2 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

Na podstawie kryteriów pobiera wariancję kolumny.

  • varianceIf(region == 'West', sales)

variancePopulation

variancePopulation(<value1> : number) => double

Pobiera wariancję populacji kolumny.

  • variancePopulation(sales)

variancePopulationIf

variancePopulationIf(<value1> : boolean, <value2> : number) => double

Na podstawie kryteriów pobiera wariancję populacji kolumny.

  • variancePopulationIf(region == 'West', sales)

varianceSample

varianceSample(<value1> : number) => double

Pobiera niestronną wariancję kolumny.

  • varianceSample(sales)

varianceSampleIf

varianceSampleIf(<value1> : boolean, <value2> : number) => double

Na podstawie kryteriów pobiera niestronną wariancję kolumny.

  • varianceSampleIf(region == 'West', sales)

Ś

weekOfYear

weekOfYear(<value1> : datetime) => integer

Pobiera tydzień roku, biorąc pod uwagę datę.

  • weekOfYear(toDate('2008-02-20')) -> 8

weeks

weeks(<value1> : integer) => long

Czas trwania w milisekundach przez liczbę tygodni.

  • weeks(2) -> 1209600000L

X

xor

xor(<value1> : boolean, <value2> : boolean) => boolean

Operator logiczny XOR. Taki sam 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