Udostępnij przez


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

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:

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) -> 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 wielu dni. Dodaje czas trwania do znacznika czasu. Dołącza jedną tablicę tego samego typu do innej. 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

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) -> 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.

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)
  • true
  • between(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']) ? 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 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')) -> 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 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) -> 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. 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(<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ą:

  1. ROUND_UP: metoda zaokrąglania w celu odjęcia od zera.

  2. ROUND_DOWN: Tryb zaokrąglania w kierunku zera.

  3. 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.)

  4. 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.)

  5. 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).

  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 obaj sąsiedzi są równodystansowi, 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, 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