Freigeben über


Verwenden von Datentransformationsausdrücken in Zuordnungsdatenflüssen

GILT FÜR: Azure Data Factory Azure Synapse Analytics

Tipp

Testen Sie Data Factory in Microsoft Fabric, eine All-in-One-Analyselösung für Unternehmen. Microsoft Fabric deckt alle Aufgaben ab, von der Datenverschiebung bis hin zu Data Science, Echtzeitanalysen, Business Intelligence und Berichterstellung. Erfahren Sie, wie Sie kostenlos eine neue Testversion starten!

Datenflüsse sind sowohl in Azure Data Factory als auch in Azure Synapse-Pipelines verfügbar. Dieser Artikel gilt für Zuordnungsdatenflüsse. Wenn Sie noch nicht mit Transformationen arbeiten, lesen Sie den Einführungsartikel Transformieren von Daten mit einem Zuordnungsdatenfluss.

Der folgende Artikel enthält Details zur Verwendung aller Ausdrücke und Funktionen, die von Azure Data Factory und Azure Synapse Analytics in Zuordnungsdatenflüssen unterstützt werden. Zusammenfassungen der einzelnen unterstützten Funktionstypen finden Sie in den folgenden Artikeln:

Alphabetische Auflistung aller Funktionen

Nachfolgend finden Sie eine alphabetische Auflistung aller Funktionen, die beim Mapping von Datenflüssen zur Verfügung stehen.

Ein

abs

abs(<value1> : number) => number

Absoluter Wert einer Zahl.

  • abs(-20) -> 20
  • abs(10) -> 10

acos

acos(<value1> : number) => double

Berechnet einen invertierten Kosinuswert.

  • acos(1) -> 0.0

add

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

Addiert ein Paar Zeichenfolgen oder Zahlen. Addiert ein Datum zu einer Anzahl von Tagen. Fügt einem Zeitstempel eine Dauer hinzu. Fügt ein Array mit ähnlichem Typ an ein anderes an. Entspricht dem 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

Addiert Tage zu einem Datum oder einem Zeitstempel. Entspricht dem Operator „+“ für Datumsangaben.

  • addDays(toDate('2016-08-08'), 1) -> toDate('2016-08-09')

addMonths

addMonths(<date/timestamp> : datetime, <months to add> : integral, [<value3> : string]) => datetime

Addiert Monate zu einem Datum oder einem Zeitstempel. Optional kann eine Zeitzone übergeben werden.

  • 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

Logischer AND-Operator. Entspricht „&&“.

  • and(true, false) -> false
  • true && false -> false

approxDistinctCount

approxDistinctCount(<value1> : any, [ <value2> : double ]) => long

Ruft die ungefähre aggregierte Anzahl unterschiedlicher Werte für eine Spalte ab. Der optionale zweite Parameter dient zur Kontrolle des Schätzfehlers.

  • approxDistinctCount(ProductID, .05) => long

array

array([<value1> : any], ...) => array

Erstellt ein Array von Elementen. Alle Elemente sollten denselben Typ haben. Wenn keine Elemente angegeben werden, ist ein leeres Zeichenfolgenarray der Standardwert. Entspricht dem Erstellungsoperator „[]“.

  • array('Seattle', 'Washington')
  • ['Seattle', 'Washington']
  • ['Seattle', 'Washington'][1]
  • 'Washington'

ascii

ascii(<Input> : string) => number

Gibt den numerischen Wert des Eingabezeichens zurück. Wenn die Eingabezeichenfolge mehrere Zeichen enthält, wird der numerische Wert des ersten Zeichens zurückgegeben.

  • ascii('A') -> 65
  • ascii('a') -> 97

asin

asin(<value1> : number) => double

Berechnet einen invertierten Sinuswert.

  • asin(0) -> 0.0

assertErrorMessages

assertErrorMessages() => map

Gibt eine Zuordnung aller Fehlermeldungen für die Zeile mit der Assert-ID als Schlüssel zurück.

Beispiele

  • 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

Erstellt eine Zuordnung von Schlüsseln/Werten. Alle Schlüssel und Werte müssen den gleichen Typ aufweisen. Wenn keine Elemente angegeben werden, wird standardmäßig eine Zuordnung von Zeichenfolge zu Zeichenfolgentyp verwendet. Entspricht dem Erstellungsoperator [ -> ]. Schlüssel und Werte müssen sich abwechseln.

  • associate('fruit', 'apple', 'vegetable', 'carrot' )=> ['fruit' -> 'apple', 'vegetable' -> 'carrot']

at

at(<value1> : array/map, <value2> : integer/key type) => array

Sucht das Element an einem Arrayindex. Der Index ist 1-basiert. Indexergebnisse außerhalb des gültigen Bereichs führen zu einem NULL-Wert. Sucht einen Wert anhand eines vorgegebenen Schlüssels in einer Zuordnung. Wird der Schlüssel nicht gefunden, wird NULL zurückgegeben.

  • at(['apples', 'pears'], 1) => 'apples'
  • at(['fruit' -> 'apples', 'vegetable' -> 'carrot'], 'fruit') => 'apples'

atan

atan(<value1> : number) => double

Berechnet einen invertierten Tangenswert.

  • atan(0) -> 0.0

atan2

atan2(<value1> : number, <value2> : number) => double

Gibt den Winkel im Bogenmaß zwischen der positiven X-Achse einer Ebene und dem durch die Koordinaten angegebenen Punkt zurück.

  • atan2(0, 0) -> 0.0

avg

avg(<value1> : number) => number

Ruft den Durchschnitt der Werte einer Spalte ab.

  • avg(sales)

avgIf

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

Ruft den Durchschnitt der Werte einer Spalte basierend auf einem Kriterium ab.

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

B

between

between(<value1> : any, <value2> : any, <value3> : any) => boolean

Überprüft, ob der erste Wert zwischen zwei anderen Werten liegt. Numerische Werte, Zeichenfolgenwerte und datetime-Werte können verglichen werden

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

bitwiseAnd

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

Bitweiser And-Operator für integrale Datentypen. Identisch mit & Operator

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

bitwiseOr

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

Bitweiser Or-Operator für integrale Datentypen. Entspricht dem Operator „|“

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

bitwiseXor

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

Bitweiser Or-Operator für integrale Datentypen. Entspricht dem Operator „|“

  • bitwiseXor(0xf4, 0xef)
  • 0x1b
  • (0xf4 ^ 0xef)
  • 0x1b
  • (true ^ false)
  • true
  • (true ^ true)
  • false

blake2b

blake2b(<value1> : integer, <value2> : any, ...) => string

Berechnet den Blake2-Digest einer Spalte mit unterschiedlichen grundtypischen Datentypen mit einer Bitlänge, die nur Vielfache von 8 zwischen 8 und 512 sein kann. Dies kann zum Berechnen eines Fingerabdrucks für eine Zeile verwendet werden:

  • blake2b(256, 'gunchus', 8.2, 'bojjus', true, toDate('2010-4-4'))
  • 'c9521a5080d8da30dffb430c50ce253c345cc4c4effc315dab2162dac974711d'

blake2bBinary

blake2bBinary(<value1> : integer, <value2> : any, ...) => binary

Berechnet den Blake2-Digest einer Spalte mit unterschiedlichen grundtypischen Datentypen mit einer Bitlänge, die nur Vielfache von 8 zwischen 8 und 512 sein kann. Dies kann zum Berechnen eines Fingerabdrucks für eine Zeile verwendet werden:

  • blake2bBinary(256, 'gunchus', 8.2, 'bojjus', true, toDate('2010-4-4'))
  • unHex('c9521a5080d8da30dffb430c50ce253c345cc4c4effc315dab2162dac974711d')

byItem

byItem(<parent column> : any, <column name> : string) => any

Suchen Sie ein Unterelement innerhalb einer Struktur oder eines Arrays mit Strukturen. Wenn mehrere Übereinstimmungen vorhanden sind, wird die erste Übereinstimmung zurückgegeben. Ist keine Übereinstimmung vorhanden, wird ein NULL-Wert zurückgegeben. Für den zurückgegebenen Wert muss eine Typkonvertierung anhand einer der Typkonvertierungsfunktionen (? date, ? string ...) durchgeführt werden. Spaltennamen, die zur Entwurfszeit bekannt sind, sollten nur mit ihrem Namen angegeben werden. Berechnete Eingaben werden nicht unterstützt. Sie können aber Parameterersetzungen verwenden.

  • 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

Wählt einen Spaltenwert nach Name im Stream aus. Sie können einen optionalen Streamnamen als zweites Argument übergeben. Wenn mehrere Übereinstimmungen vorhanden sind, wird die erste Übereinstimmung zurückgegeben. Ist keine Übereinstimmung vorhanden, wird ein NULL-Wert zurückgegeben. Für den zurückgegebenen Wert muss eine Typkonvertierung anhand einer der Typkonvertierungsfunktionen (TO_DATE, TO_STRING, ...) durchgeführt werden. Spaltennamen, die zur Entwurfszeit bekannt sind, sollten nur mit ihrem Namen angegeben werden. Berechnete Eingaben werden nicht unterstützt. Sie können aber Parameterersetzungen verwenden.

  • 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

Wählen Sie ein Array von Spalten nach Name im Stream aus. Sie können einen optionalen Streamnamen als zweites Argument übergeben. Wenn mehrere Übereinstimmungen vorhanden sind, wird die erste Übereinstimmung zurückgegeben. Wenn bei einer Spalte keine Übereinstimmungen vorhanden sind, ist die gesamte Ausgabe ein NULL-Wert. Der zurückgegebene Wert erfordert eine Typkonvertierungsfunktion (toDate, toString ...). Spaltennamen, die zur Entwurfszeit bekannt sind, sollten nur mit ihrem Namen angegeben werden. Berechnete Eingaben werden nicht unterstützt. Sie können aber Parameterersetzungen verwenden.

  • 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

Wählt einen Spaltenwert nach Name im Ursprungsstream aus. Das zweite Argument ist der Name des Ursprungsstreams. Wenn mehrere Übereinstimmungen vorhanden sind, wird die erste Übereinstimmung zurückgegeben. Ist keine Übereinstimmung vorhanden, wird ein NULL-Wert zurückgegeben. Für den zurückgegebenen Wert muss eine Typkonvertierung anhand einer der Typkonvertierungsfunktionen (TO_DATE, TO_STRING, ...) durchgeführt werden. Spaltennamen, die zur Entwurfszeit bekannt sind, sollten nur mit ihrem Namen angegeben werden. Berechnete Eingaben werden nicht unterstützt. Sie können aber Parameterersetzungen verwenden.

  • toString(byOrigin('ancestor', 'ancestorStream'))

byOrigins

byOrigins(<column names> : array, [<origin stream name> : string]) => any

Wählt ein Array von Spalten nach Name im Stream aus. Das zweite Argument ist der Stream, aus dem es stammt. Wenn mehrere Übereinstimmungen vorhanden sind, wird die erste Übereinstimmung zurückgegeben. Ist keine Übereinstimmung vorhanden, wird ein NULL-Wert zurückgegeben. Für den zurückgegebenen Wert muss eine Typkonvertierung anhand einer der Typkonvertierungsfunktionen (TO_DATE, TO_STRING, ...) durchgeführt werden. Spaltennamen, die zur Entwurfszeit bekannt sind, sollten nur mit ihrem Namen angegeben werden. Berechnete Eingaben werden nicht unterstützt. Sie können aber Parameterersetzungen verwenden.

  • toString(byOrigins(['ancestor1', 'ancestor2'], 'ancestorStream'))

byPath

byPath(<value1> : string, [<streamName> : string]) => any

Sucht einen hierarchischen Pfad anhand des Namens im Stream. Sie können einen optionalen Streamnamen als zweites Argument übergeben. Wenn kein solcher Pfad gefunden wird, wird NULL zurückgegeben. Spaltennamen/-pfade, die zur Entwurfszeit bekannt sind, sollten nur anhand ihres Namens oder Punktnotationspfades adressiert werden. Berechnete Eingaben werden nicht unterstützt. Sie können aber Parameterersetzungen verwenden.

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

byPosition

byPosition(<position> : integer) => any

Wählt einen Spaltenwert nach seiner relativen Position (1-basiert) im Stream aus. Liegt die Position außerhalb des gültigen Bereichs, wird ein NULL-Wert zurückgegeben. Für den zurückgegebenen Wert muss eine Typkonvertierung mit einer der Typkonvertierungsfunktionen (TO_DATE, TO_STRING ...) durchgeführt werden. Berechnete Eingaben werden nicht unterstützt. Sie können aber Parameterersetzungen verwenden.

  • 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

Wendet basierend auf alternierenden Bedingungen einen Wert oder den anderen an. Wenn die Anzahl von Eingaben gerade ist, ist der andere Wert für die letzte Bedingung standardmäßig 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

Berechnet die Kubikwurzel einer Zahl.

  • cbrt(8) -> 2.0

ceil

ceil(<value1> : number) => number

Gibt den kleinsten Integerwert zurück, der nicht kleiner als die Zahl ist.

  • ceil(-0.1) -> 0

char

char(<Input> : number) => string

Gibt das ASCII-Zeichen zurück, das durch die Eingabezahl dargestellt wird. Wenn die Zahl größer als 256 ist, entspricht das Ergebnis „chr(number % 256)“.

  • char(65) -> 'A'
  • char(97) -> 'a'

coalesce

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

Gibt den ersten Wert ungleich NULL aus einem Satz von Eingaben zurück. Alle Eingaben müssen den gleichen Typ haben.

  • coalesce(10, 20) -> 10
  • coalesce(toString(null), toString(null), 'dumbo', 'bo', 'go') -> 'dumbo'

collect

collect(<value1> : any) => array

Sammelt alle Werte des Ausdrucks in der aggregierten Gruppe in einem Array. Während dieses Prozesses können Strukturen gesammelt und in alternative Strukturen transformiert werden. Die Anzahl der Elemente ist gleich der Anzahl der Zeilen in dieser Gruppe und kann NULL-Werte enthalten. Die Anzahl der gesammelten Elemente sollte klein sein.

  • collect(salesPerson)
  • collect(firstName + lastName))
  • collect(@(name = salesPerson, sales = salesAmount) )

collectUnique

collectUnique(<value1> : any) => array

Sammelt alle Werte des Ausdrucks in der aggregierten Gruppe in einem eindeutigen Array. Während dieses Prozesses können Strukturen gesammelt und in alternative Strukturen transformiert werden. Die Anzahl der Elemente ist gleich der Anzahl der Zeilen in dieser Gruppe und kann NULL-Werte enthalten. Die Anzahl der gesammelten Elemente sollte klein sein.

  • collect(salesPerson)
  • collect(firstName + lastName))
  • collect(@(name = salesPerson, sales = salesAmount) )

columnNames

columnNames(<value1>columnNames( : string, i><value1> : boolean) => array

Ruft die Namen aller Ausgabespalten für einen Stream ab. Sie können einen optionalen Streamnamen als erstes Argument übergeben. Das zweite Argument ist ebenfalls optional, mit „false“ als Standardwert. Wenn Sie das zweite Argument auf true() festlegen, gibt ADF nur Spalten zurück, die durch Schemaabweichung abweichen.

  • columnNames()
  • columnNames('DeriveStream')
  • columnNames('DeriveStream', true())
  • columnNames('', true())

columns

columns([<stream name> : string]) => any

Ruft die Werte aller Ausgabespalten für einen Stream ab. Sie können einen optionalen Streamnamen als zweites Argument übergeben.

  • columns()
  • columns('DeriveStream')

compare

compare(<value1> : any, <value2> : any) => integer

Vergleicht zwei Werte des gleichen Typs. Bei „Wert 1 < Wert 2“ wird eine negative ganze Zahl zurückgegeben. Bei „Wert 1 = Wert 2“ wird „0“ zurückgegeben. Und bei „Wert 1 > Wert 2“ wird ein positiver Wert zurückgegeben.

  • (compare(12, 24) < 1) -> true
  • (compare('dumbo', 'dum') > 0) -> true

concat

concat(<this> : string, <that> : string, ...) => string

Verkettet eine variable Anzahl von Zeichenfolgen miteinander. Entspricht dem Operator „+“ mit Zeichenfolgen.

  • concat('dataflow', 'is', 'awesome') -> 'dataflowisawesome'
  • 'dataflow' + 'is' + 'awesome' -> 'dataflowisawesome'
  • isNull('sql' + null) -> true

concatWS

concatWS(<separator> : string, <this> : string, <that> : string, ...) => string

Verkettet eine variable Anzahl von Zeichenfolgen unter Verwendung eines Trennzeichens miteinander. Der erste Parameter ist das Trennzeichen.

  • 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

Gibt TRUE zurück, wenn ein beliebiges Element im angegebenen Array als TRUE im bereitgestellten Prädikat ausgewertet wird. Die contains-Funktion erwartet einen Verweis auf ein Element in der Prädikatfunktion als #item.

  • contains([1, 2, 3, 4], #item == 3) -> true
  • contains([1, 2, 3, 4], #item > 5) -> false

cos

cos(<value1> : number) => double

Berechnet einen Kosinuswert.

  • cos(10) -> -0.8390715290764524

cosh

cosh(<value1> : number) => double

Berechnet einen hyperbolischen Kosinuswert.

  • cosh(0) -> 1.0

count

count([<value1> : any]) => long

Ruft die aggregierte Anzahl von Werten ab. Wenn optionale Spalten angegeben sind, werden NULL-Werte in der Anzahl ignoriert.

  • count(custId)
  • count(custId, custName)
  • count()
  • count(iif(isNull(custId), 1, NULL))

countAll

countAll([<value1> : any]) => long

Ruft die aggregierte Anzahl von Werten ab, einschließlich NULL.

  • countAll(custId)
  • countAll()

countDistinct

countDistinct(<value1> : any, [<value2> : any], ...) => long

Ruft die aggregierte Anzahl unterschiedlicher Werte für eine Gruppe von Spalten ab.

  • countDistinct(custId, custName)

countAllDistinct

countAllDistinct(<value1> : any, [<value2> : any], ...) => long

Ruft die aggregierte Anzahl unterschiedlicher Werte einer Spaltengruppe ab, einschließlich NULL.

  • countAllDistinct(custId, custName)

countIf

countIf(<value1> : boolean, [<value2> : any]) => long

Ruft die aggregierte Anzahl von Werten basierend auf einem Kriterium ab. Wenn die optionale Spalte angegeben ist, werden NULL-Werte in der Anzahl ignoriert.

  • countIf(state == 'CA' && commission < 10000, name)

covariancePopulation

covariancePopulation(<value1> : number, <value2> : number) => double

Ruft die Kovarianz der Population zweier Spalten ab.

  • covariancePopulation(sales, profit)

covariancePopulationIf

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

Ruft die Kovarianz der Population zweier Spalten basierend auf einem Kriterium ab.

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

covarianceSample

covarianceSample(<value1> : number, <value2> : number) => double

Ruft die Kovarianz einer Stichprobe zweier Spalten ab.

  • covarianceSample(sales, profit)

covarianceSampleIf

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

Ruft die Kovarianz einer Stichprobe zweier Spalten basierend auf einem Kriterium ab.

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

crc32

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

Berechnet den CRC32-Hash einer Gruppe von Spalten verschiedener primitiver Datentypen anhand einer angegebenen Bitlänge, die nur die Werte 0 (256), 224, 256, 384, 512 aufweisen kann. Dies kann zum Berechnen eines Fingerabdrucks für eine Zeile verwendet werden.

  • crc32(256, 'gunchus', 8.2, 'bojjus', true, toDate('2010-4-4')) -> 3630253689L

cumeDist

cumeDist() => integer

Die CumeDist-Funktion berechnet die Position eines Werts relativ zu allen Werten in der Partition. Das Ergebnis ist die Anzahl der Zeilen vor der aktuellen Zeile oder gleich dieser in der Reihenfolge der Partition, dividiert durch die Gesamtanzahl von Zeilen in der Fensterpartition. Alle gleichwertigen Werte in der Reihenfolge werden als dieselbe Position ausgewertet.

  • cumeDist()

currentDate

currentDate([<value1> : string]) => date

Ruft das aktuelle Datum ab, wenn dieser Auftrag ausgeführt wird. Sie können eine optionale Zeitzone in der Form „GMT“, „PST“, „UTC“, „America/Cayman“ übergeben. Die lokale Zeitzone des Rechenzentrums/der Region der Data Factory wird als Standard verwendet. Informationen zu verfügbaren Formaten finden Sie unter der Java-Klasse SimpleDateFormat. 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

Ruft den aktuellen Zeitstempel mit der lokalen Zeitzone ab, wenn der Auftrag ausgeführt wird.

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

currentUTC

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

Ruft den aktuellen Zeitstempel als UTC ab. Wenn die aktuelle Uhrzeit in einer anderen Zeitzone als der Zeitzone Ihres Clusters interpretiert werden soll, können Sie eine optionale Zeitzone in der Form „GMT“, „PST“, „UTC“, „America/Cayman“ übergeben. Der Standardwert ist die aktuelle Zeitzone. Informationen zu verfügbaren Formaten finden Sie unter der Java-Klasse SimpleDateFormat. https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html. Verwenden Sie zum Konvertieren der UTC-Zeit in eine andere Zeitzone 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

Ruft den Tag des Monats aus einem Datum ab.

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

dayOfWeek

dayOfWeek(<value1> : datetime) => integer

Ruft den Tag der Woche aus einem Datum ab. 1: Sonntag, 2: Montag, ..., 7: Samstag.

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

dayOfYear

dayOfYear(<value1> : datetime) => integer

Ruft den Tag des Jahres aus einem Datum ab.

  • dayOfYear(toDate('2016-04-09')) -> 100

days

days(<value1> : integer) => long

Dauer in Millisekunden für die Anzahl von Tagen.

  • days(2) -> 172800000L

decode

decode(<Input> : any, <Charset> : string) => binary

Decodiert die codierten Eingabedaten basierend auf dem angegebenen Zeichensatz in eine Zeichenfolge. Ein zweites (optional) Argument kann verwendet werden, um anzugeben, welcher Zeichensatz verwendet werden soll: „US-ASCII“, „ISO-8859-1“, „UTF-8“ (Standard), „UTF-16BE“, „UTF-16LE“, „UTF-16“.

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

degrees

degrees(<value1> : number) => double

Konvertiert Bogenmaße zu Graden.

  • degrees(3.141592653589793) -> 180

denseRank

denseRank() => integer

Berechnet den Rang eines Werts in einer Gruppe von Werten, die in der Reihenfolge eines Fensters nach Klausel angegeben sind. Das Ergebnis ist 1 plus der Anzahl von Zeilen vor der aktuellen Zeile oder gleich dieser in der Reihenfolge der Partition. Die Werte erzeugen keine Lücken in der Folge. „Dense Rank“ funktioniert auch dann, wenn die Daten nicht sortiert sind. In diesem Fall wird nach Änderungen der Werte gesucht.

  • denseRank()

distinct

distinct(<value1> : array) => array

Gibt eine bestimmte Menge von Elementen aus einem Array zurück.

  • distinct([10, 20, 30, 10]) => [10, 20, 30]

divide

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

Dividiert ein Zahlenpaar. Entspricht dem Operator /.

  • divide(20, 10) -> 2
  • 20 / 10 -> 2

dropLeft

dropLeft(<value1> : string, <value2> : integer) => string

Entfernt die angegebene Anzahl von Zeichen links von der Zeichenfolge. Wenn die angeforderte Löschung die Länge der Zeichenfolge überschreitet, wird eine leere Zeichenfolge zurückgegeben.

  • dropLeft('bojjus', 2) => 'jjus'
  • dropLeft('cake', 10) => ''

dropRight

dropRight(<value1> : string, <value2> : integer) => string

Entfernt die angegebene Anzahl von Zeichen rechts von der Zeichenfolge. Wenn die angeforderte Löschung die Länge der Zeichenfolge überschreitet, wird eine leere Zeichenfolge zurückgegeben.

  • dropRight('bojjus', 2) => 'bojj'
  • dropRight('cake', 10) => ''

E

encode

encode(<Input> : string, <Charset> : string) => binary

Codiert die Daten der Eingabezeichenfolge basierend auf einem Zeichensatz in Binärcode. Ein zweites (optional) Argument kann verwendet werden, um anzugeben, welcher Zeichensatz verwendet werden soll: „US-ASCII“, „ISO-8859-1“, „UTF-8“ (Standard), „UTF-16BE“, „UTF-16LE“, „UTF-16“.

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

Eingabezeichenfolge: String, Charset: String => binär

endsWith

endsWith(<string> : string, <substring to check> : string) => boolean

Überprüft, ob die Zeichenfolge mit der angegebenen Zeichenfolge endet.

  • endsWith('dumbo', 'mbo') -> true

equals

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

Operator für Vergleich auf Gleichheit. Entspricht dem 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

Operator für Vergleich auf Gleichheit ohne Berücksichtigung der Groß-/Kleinschreibung. Gleich wie Operator <=>.

  • 'abc'<=>'Abc' -> true
  • equalsIgnoreCase('abc', 'Abc') -> true

escape

escape(<string_to_escape> : string, <format> : string) => string

Versieht eine Zeichenfolge mit einem Escapezeichen entsprechend einem Format. Literalwerte für zulässige Formate sind „json“, „xml“, „ecmascript“, „html“ und „java“.


except

except(<value1> : array, <value2> : array) => array

Gibt eine Differenzmenge eines Arrays aus einem anderen zurück, wobei Duplikate gelöscht werden.

  • except([10, 20, 30], [20, 40]) => [10, 30]

expr

expr(<expr> : string) => any

Führt zu einem Ausdruck aus einer Zeichenfolge. Dies ist das gleiche wie das Schreiben dieses Ausdrucks in einer nicht literalen Form. Dies kann verwendet werden, um Parameter als Zeichenfolgen-Darstellungen zu übergeben.

  • expr('price * discount') => alle

F

factorial

factorial(<value1> : number) => long

Berechnet die Fakultät einer Zahl.

  • factorial(5) -> 120

false

false() => boolean

Gibt immer den Wert FALSE zurück. Verwenden Sie die Funktion syntax(false()), wenn eine Spalte mit dem Namen „false“ vorhanden ist.

  • (10 + 20 > 30) -> false
  • (10 + 20 > 30) -> false()

filter

filter(<value1> : array, <value2> : unaryfunction) => array

Filtert Elemente aus dem Array heraus, die dem bereitgestellten Prädikat nicht entsprechen. Die filter-Funktion erwartet einen Verweis auf ein Element in der Prädikatfunktion als #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

Suchen Sie das erste Element aus einem Array, das der Bedingung entspricht. Es erfordert eine Filterfunktion, bei der Sie das Element im Array als „#item“ adressieren können. Für tief geschachtelte Zuordnungen können Sie mithilfe der Notation „#item_n(#item_1, #item_2...)“ auf die übergeordneten Zuordnungen verweisen.

  • 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

Ruft den ersten Wert einer Spaltengruppe ab. Wenn der zweite Parameter ignoreNulls nicht angegeben ist, wird dafür FALSE angenommen.

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

flatten

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

Glättet Array oder Arrays in ein einziges Array. Arrays unteilbarer Elemente werden unverändert zurückgegeben. Das letzte Argument ist optional und lautet standardmäßig FALSE, um rekursiv mehr als eine Ebene tief zu vereinfachen.

  • flatten([['bojjus', 'girl'], ['gunchus', 'boy']]) => ['bojjus', 'girl', 'gunchus', 'boy']
  • flatten([[['bojjus', 'gunchus']]] , true) => ['bojjus', 'gunchus']

floor

floor(<value1> : number) => number

Gibt den größten Integerwert zurück, der nicht größer als die Zahl ist.

  • floor(-0.1) -> -1

fromBase64

fromBase64(<value1> : string, <encoding type> : string) => string

Decodiert die angegebene Base64-codierte Zeichenfolge. Optional können Sie den Codierungstyp übergeben.

  • fromBase64('Z3VuY2h1cw==') -> 'gunchus'
  • fromBase64('SGVsbG8gV29ybGQ=', 'Windows-1252') -> 'Hello World'

fromUTC

fromUTC(<value1> : timestamp, [<value2> : string]) => timestamp

Wird in den Zeitstempel von UTC konvertiert. Sie können die Zeitzone optional in der Form „GMT“, „PST“, „UTC“, „America/Cayman“ übergeben. Der Standardwert ist die aktuelle Zeitzone. Informationen zu verfügbaren Formaten finden Sie unter der Java-Klasse SimpleDateFormat. 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 für Vergleich auf „größer als“. Gleich wie 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

Operator für Vergleich auf „größer als oder gleich“. Gleich wie Operator >=.

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

greatest

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

Gibt den größten Wert in der Liste der Werte als Eingabe zurück, wobei NULL-Werte übersprungen werden. Gibt NULL zurück, wenn alle Eingaben NULL sind.

  • 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

Überprüft anhand des Namens, ob ein Spaltenwert im Stream vorhanden ist. Sie können einen optionalen Streamnamen als zweites Argument übergeben. Spaltennamen, die zur Entwurfszeit bekannt sind, sollten nur mit ihrem Namen angegeben werden. Berechnete Eingaben werden nicht unterstützt. Sie können aber Parameterersetzungen verwenden.

  • hasColumn('parent')

hasError

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

Überprüft, ob Assert mit der angegebenen ID als Fehler markiert ist.

Beispiele

  • hasError('assert1')
  • hasError('assert2')

hasPath

hasPath(<value1> : string, [<streamName> : string]) => boolean

Überprüft, ob ein bestimmter hierarchischer Pfad nach dem Namen im Stream vorhanden ist. Sie können einen optionalen Streamnamen als zweites Argument übergeben. Spaltennamen/-pfade, die zur Entwurfszeit bekannt sind, sollten nur anhand ihres Namens oder Punktnotationspfades adressiert werden. Berechnete Eingaben werden nicht unterstützt. Sie können aber Parameterersetzungen verwenden.

  • hasPath('grandpa.parent.child') => boolean

hex

hex(<value1>: binary) => string

Diese Funktion gibt eine Hexadezimal-Zeichenfolgendarstellung eines Binärwerts zurück.

  • hex(toBinary([toByte(0x1f), toByte(0xad), toByte(0xbe)])) -> '1fadbe'

hour

hour(<value1> : timestamp, [<value2> : string]) => integer

Ruft den Stundenwert eines Zeitstempels ab. Sie können eine optionale Zeitzone in der Form „GMT“, „PST“, „UTC“, „America/Cayman“ übergeben. Standardmäßig wird die lokale Zeitzone verwendet. Informationen zu verfügbaren Formaten finden Sie unter der Java-Klasse SimpleDateFormat. 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

Dauer in Millisekunden für die Anzahl von Stunden.

  • hours(2) -> 7200000L

I

iif

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

Wendet basierend auf einer Bedingung einen Wert oder den anderen an. Wenn „Andere“ nicht angegeben ist, wird NULL angenommen. Die Werte müssen kompatibel sein (numerisch, Zeichenfolge, ...).

  • 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

Bei zwei oder mehr Eingaben wird das erste Element zurückgegeben, das nicht NULL ist. Diese Funktion ist gleichbedeutend mit „coalesce“.

  • iifNull(10, 20) -> 10
  • iifNull(null, 20, 40) -> 20
  • iifNull('azure', 'data', 'factory') -> 'azure'
  • iifNull(null, 'data', 'factory') -> 'data'

in

in(<array of items> : array, <item to find> : any) => boolean

Überprüft, ob ein Element im Array vorhanden ist.

  • in([10, 20, 30], 10) -> true
  • in(['good', 'kid'], 'bad') -> false

initCap

initCap(<value1> : string) => string

Wandelt den ersten Buchstaben jedes Worts in Großbuchstaben um. Wörter werden als durch Leerzeichen getrennt identifiziert.

  • initCap('cool iceCREAM') -> 'Cool Icecream'

instr

instr(<string> : string, <substring to find> : string) => integer

Sucht die Position (basierend auf 1) der Teilzeichenfolge innerhalb einer Zeichenfolge. Bei nicht gefundener Zeichenfolge wird 0 zurückgegeben.

  • instr('dumbo', 'mbo') -> 3
  • instr('microsoft', 'o') -> 5
  • instr('good', 'bad') -> 0

intersect

intersect(<value1> : array, <value2> : array) => array

Gibt eine Schnittmenge verschiedener Elemente aus 2 Arrays zurück.

  • intersect([10, 20, 30], [20, 40]) => [20]

isBitSet

isBitSet (<value1> : array, <value2>:integer ) => boolean

Überprüft, ob in diesem Bitset eine Bitposition festgelegt ist

  • isBitSet(toBitSet([10, 32, 98]), 10) => true

isBoolean

isBoolean(<value1>: string) => boolean

Diese Funktion überprüft, ob der Zeichenfolgenwert ein boolescher Wert gemäß den Regeln von toBoolean() ist.

  • isBoolean('true') -> true
  • isBoolean('no') -> true
  • isBoolean('microsoft') -> false

isByte

isByte(<value1> : string) => boolean

Diese Funktion überprüft, ob der Zeichenfolgenwert ein Bytewert ist, der gemäß den Regeln von toByte() ein optionales Format erhält.

  • isByte('123') -> true
  • isByte('chocolate') -> false

isDate

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

Diese Funktion überprüft, ob es sich bei der Eingabedatum-Zeichenfolge um ein Datum handelt, das ein optionales Eingabedatumsformat verwendet. Verfügbare Formate finden Sie unter SimpleDateFormat von Java. Wenn das Eingabedatumsformat weggelassen wird, ist das Standardformat yyyy-[M]M-[d]d. Zulässige Formate sind [ 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

Überprüft, ob der Zeichenfolgenwert ein Dezimalwert ist, der gemäß den Regeln von toDecimal() ein optionales Format erhält.

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

isDelete

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

Überprüft, ob die Zeile zum Löschen markiert ist. Für Transformationen, die mehrere Eingabestreams akzeptieren, können Sie den (auf 1 basierenden) Index des Streams übergeben. Der Streamindex muss „1“ oder „2“ lauten, und der Standardwert ist „1“.

  • isDelete()
  • isDelete(1)

isDistinct

isDistinct(<value1> : any , <value1> : any) => boolean

Stellt fest, ob eine Spalte oder eine Gruppe von Spalten eindeutig ist. NULL wird nicht als eigener Wert gewertet.

  • isDistinct(custId, custName) => boolean

isDouble

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

Überprüft, ob der Zeichenfolgenwert ein Double-Wert ist, der gemäß den Regeln von toDouble() ein optionales Format erhält.

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

isError

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

Überprüft, ob die Zeile als Fehler markiert ist. Für Transformationen, die mehrere Eingabestreams akzeptieren, können Sie den (auf 1 basierenden) Index des Streams übergeben. Der Streamindex muss „1“ oder „2“ lauten, und der Standardwert ist „1“.

  • isError()
  • isError(1)

isFloat

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

Überprüft, ob der Zeichenfolgenwert ein Gleitkommawert ist, der gemäß den Regeln von toFloat() ein optionales Format erhält.

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

isIgnore

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

Überprüft, ob die Zeile zum Ignorieren markiert ist. Für Transformationen, die mehrere Eingabestreams akzeptieren, können Sie den (auf 1 basierenden) Index des Streams übergeben. Der Streamindex muss „1“ oder „2“ lauten, und der Standardwert ist „1“.

  • isIgnore()
  • isIgnore(1)

isInsert

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

Überprüft, ob die Zeile zum Einfügen markiert ist. Für Transformationen, die mehrere Eingabestreams akzeptieren, können Sie den (auf 1 basierenden) Index des Streams übergeben. Der Streamindex muss „1“ oder „2“ lauten, und der Standardwert ist „1“.

  • isInsert()
  • isInsert(1)

isInteger

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

Überprüft, ob der Zeichenfolgenwert ein Integerwert ist, der gemäß den Regeln von toInteger() ein optionales Format erhält.

  • isInteger('123') -> true
  • isInteger('$123' -> '$###') -> true
  • isInteger('microsoft') -> false

isLong

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

Überprüft, ob der Zeichenfolgenwert ein Long-Wert ist, der gemäß den Regeln von toLong() ein optionales Format erhält.

  • isLong('123') -> true
  • isLong('$123' -> '$###') -> true
  • isLong('gunchus') -> false

isMatch

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

Überprüft, ob die Zeile bei der Suche übereinstimmt. Für Transformationen, die mehrere Eingabestreams akzeptieren, können Sie den (auf 1 basierenden) Index des Streams übergeben. Der Streamindex muss „1“ oder „2“ lauten, und der Standardwert ist „1“.

  • isMatch()
  • isMatch(1)

isNan

isNan (<value1> : integral) => boolean

Überprüft, ob es sich nicht um eine Zahl handelt.

  • isNan(10.2) => false

isNull

isNull(<value1> : any) => boolean

Überprüft, ob der Wert NULL ist.

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

isShort

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

Überprüft, ob der Zeichenfolgenwert ein Short-Wert ist, der gemäß den Regeln von toShort() ein optionales Format erhält.

  • isShort('123') -> true
  • isShort('$123' -> '$###') -> true
  • isShort('microsoft') -> false

isTimestamp

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

Diese Funktion überprüft, ob es sich bei der Eingabedatum-Zeichenfolge um einen Zeitstempel handelt, der ein optionales Eingabezeitstempel-Format verwendet. Verfügbare Formate finden Sie unter SimpleDateFormat von Java. Wenn der Zeitstempel weggelassen wird, wird das Standardmuster yyyy-[M]M-[d]d hh:mm:ss[.f...] verwendet. Sie können eine optionale Zeitzone in der Form „GMT“, „PST“, „UTC“, „America/Cayman“ übergeben. Der Zeitstempel unterstützt eine Genauigkeit im Millisekundenbereich mit dem Wert 999. Verfügbare Formate finden Sie unter SimpleDateFormat von 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

Überprüft, ob die Zeile zum Aktualisieren markiert ist. Für Transformationen, die mehrere Eingabestreams akzeptieren, können Sie den (auf 1 basierenden) Index des Streams übergeben. Der Streamindex muss „1“ oder „2“ lauten, und der Standardwert ist „1“.

  • isUpdate()
  • isUpdate(1)

isUpsert

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

Überprüft, ob die Zeile zum Einfügen markiert ist. Für Transformationen, die mehrere Eingabestreams akzeptieren, können Sie den (auf 1 basierenden) Index des Streams übergeben. Der Streamindex muss „1“ oder „2“ lauten, und der Standardwert ist „1“.

  • isUpsert()
  • isUpsert(1)

J

jaroWinkler

jaroWinkler(<value1> : string, <value2> : string) => double

Ruft den Jaro-Winkler-Abstand zwischen zwei Zeichenfolgen ab.

  • jaroWinkler('frog', 'frog') => 1.0

K

keyValues

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

Erstellt eine Zuordnung von Schlüsseln/Werten. Der erste Parameter ist ein Array von Schlüsseln, der zweite Parameter ist das Array von Werten. Beide Arrays müssen die gleiche Länge haben.

  • keyValues(['bojjus', 'appa'], ['gunchus', 'ammi']) => ['bojjus' -> 'gunchus', 'appa' -> 'ammi']

kurtosis

kurtosis(<value1> : number) => double

Ruft die Kurtosis einer Spalte ab.

  • kurtosis(sales)

kurtosisIf

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

Ruft die Kurtosis einer Spalte basierend auf einem Kriterium ab.

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

L

lag

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

Ruft den Wert des ersten Parameters ab, der als n Zeilen vor der aktuellen Zeile ausgewertet wird. Der zweite Parameter ist die Anzahl der Zeilen für die Rückwärtssuche. Der Standardwert ist 1. Wenn nicht genügend Zeilen vorhanden sind, wird der Wert NULL zurückgegeben, sofern kein Standardwert angegeben ist.

  • lag(amount, 2)
  • lag(amount, 2000, 100)

last

last(<value1> : any, [<value2> : boolean]) => any

Ruft den letzten Wert einer Spaltengruppe ab. Wenn der zweite Parameter ignoreNulls nicht angegeben ist, wird dafür FALSE angenommen.

  • last(sales)
  • last(sales, false)

lastDayOfMonth

lastDayOfMonth(<value1> : datetime) => date

Ruft den letzten Tag des Monats aus einem Datum ab.

  • lastDayOfMonth(toDate('2009-01-12')) -> toDate('2009-01-31')

lead

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

Ruft den Wert des ersten Parameters ab, der als n Zeilen nach der aktuellen Zeile ausgewertet wird. Der zweite Parameter ist die Anzahl der Zeilen für die Vorwärtssuche. Der Standardwert ist 1. Wenn nicht genügend Zeilen vorhanden sind, wird der Wert NULL zurückgegeben, sofern kein Standardwert angegeben ist.

  • lead(amount, 2)
  • lead(amount, 2000, 100)

least

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

Operator für Vergleich auf „kleiner als oder gleich“. Gleich wie 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

Extrahiert eine Teilzeichenfolge mit Beginn an Index 1 mit einer Anzahl von Zeichen. Entspricht SUBSTRING(str, 1, n).

  • left('bojjus', 2) -> 'bo'
  • left('bojjus', 20) -> 'bojjus'

length

length(<value1> : string) => integer

Gibt die Länge der Zeichenfolge zurück.

  • length('dumbo') -> 5

lesser

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

Operator für Vergleich auf „kleiner als“. Gleich wie 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

Operator für Vergleich auf „kleiner als oder gleich“. Gleich wie Operator <.

  • lesserOrEqual(12, 12) -> true
  • ('dumbo' <= 'dum') -> false

levenshtein

levenshtein(<from string> : string, <to string> : string) => integer

Ruft die Levenshtein-Distanz zwischen zwei Zeichenfolgen ab.

  • levenshtein('boys', 'girls') -> 4

like

like(<string> : string, <pattern match> : string) => boolean

Das Muster ist eine Zeichenfolge, die buchstabenweise verglichen wird. Bei den Ausnahmen handelt es sich um die folgenden speziellen Symbole: _ entspricht einem beliebigen Zeichen in der Eingabe (ähnlich wie „.“ in regulären posix-Ausdrücken) % entspricht null oder mehr Zeichen in der Eingabe (ähnlich wie „.*“ in regulären posix-Ausdrücken). Das Escapezeichen lautet „"“. Wenn ein Escapezeichen einem besonderen Symbol oder einem anderen Escapezeichen vorangestellt ist, wird das folgende Zeichen direkt verglichen. Es ist als Escapezeichen für alle anderen Zeichen ungültig.

  • like('icecream', 'ice%') -> true

locate

locate(<substring to find> : string, <string> : string, [<from index - 1-based> : integral]) => integer

Sucht die Position (basierend auf 1) der Teilzeichenfolge innerhalb einer Zeichenfolge ab einer bestimmten Position. Wenn die Position nicht angegeben ist, wird vom dem Anfang der Zeichenfolge ausgegangen. Bei nicht gefundener Zeichenfolge wird 0 zurückgegeben.

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

log

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

Berechnet den Logarithmuswert. Eine optionale Basis kann angegeben werden; andernfalls wird die Eulersche Zahl verwendet.

  • log(100, 10) -> 2

log10

log10(<value1> : number) => double

Berechnet den Logarithmuswert über der Basis 10.

  • log10(100) -> 2

lookup

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

Schlägt die erste Zeile der zwischengespeicherten Senke mithilfe der angegebenen Schlüssel, die mit den Schlüsseln der zwischengespeicherten Senke identisch sind, nach.

  • cacheSink#lookup(movieId)

lower

lower(<value1> : string) => string

Wandelt eine Zeichenfolge in Kleinschreibung um.

  • lower('GunChus') -> 'gunchus'

lpad

lpad(<string to pad> : string, <final padded length> : integral, <padding> : string) => string

Füllt die Zeichenfolge nach links mit der angegebenen Auffüllung bis zu einer bestimmten Länge auf. Ist die Zeichenfolge größer oder gleich der Länge, wird sie auf die Länge gekürzt.

  • lpad('dumbo', 10, '-') -> '-----dumbo'
  • lpad('dumbo', 4, '-') -> 'dumb'

ltrim

ltrim(<string to trim> : string, [<trim characters> : string]) => string

Entfernt vorangestellte Zeichen aus einer Zeichenfolge. Wenn der zweite Parameter nicht angegeben ist, werden Leerstellen entfernt. Andernfalls werden Zeichen entfernt, die im zweiten Parameter angegeben sind.

  • ltrim(' dumbo ') -> 'dumbo '
  • ltrim('!--!du!mbo!', '-!') -> 'du!mbo!'

M

map

map(<value1> : array, <value2> : unaryfunction) => any

Ordnet anhand des bereitgestellten Ausdrucks jedes Element des Arrays einem neuen Element zu. Die map-Funktion erwartet einen Verweis auf ein Element in der Ausdrucksfunktion als #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

Transformiert eine Zuordnung durch Zuordnen der Schlüssel zu neuen Werten. Gibt ein Array zurück. Es wird eine Zuordnungsfunktion verwendet, bei der Sie das Element als „#key“ und den aktuellen Wert als „#value“ aufrufen können.

  • 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

Ordnet ein Array bedingt einem anderen Array gleicher oder kleinerer Länge zu. Die Werte können einen beliebigen Datentyp aufweisen, einschließlich structTypes. Es erfordert eine Zuordnungsfunktion, bei der Sie das Element im Array als „#item“ und den aktuellen Index als „#index“ adressieren können. Bei tief verschachtelten Maps können Sie mit der Notation #item_[n](#item_1, #index_1...) auf die übergeordneten Maps verweisen.

  • 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

Ordnet anhand des bereitgestellten Ausdrucks jedes Element des Arrays einem neuen Element zu. Die map-Funktion erwartet einen Verweis auf ein einzelnes Element in der Ausdrucksfunktion als „#item“ und einen Verweis auf den Elementindex als „#index“.

  • mapIndex([1, 2, 3, 4], #item + 2 + #index) -> [4, 6, 8, 10]

mapLoop

mapLoop(<value1> : integer, <value2> : unaryfunction) => any

Durchläuft Schleifen von 1 bis Länge, um ein Array mit dieser Länge zu erstellen. Es erfordert eine Zuordnungsfunktion, bei der Sie den Index im Array als „#index“ adressieren können. Für tief verschachtelte Maps können Sie auf die übergeordneten Maps mit der Notation #index_n(#index_1, #index_2...) verweisen.

  • mapLoop(3, #index * 10) -> [10, 20, 30]

max

max(<value1> : any) => any

Ruft den größten Wert einer Spalte ab.

  • max(sales)

maxIf

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

Ruft den größten Wert einer Spalte basierend auf einem Kriterium ab.

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

md5

md5(<value1> : any, ...) => string

Berechnet den MD5-Hash einer Gruppe von Spalten verschiedener primitiver Datentypen und gibt eine hexadezimale Zeichenfolge mit 32 Zeichen zurück. Dies kann zum Berechnen eines Fingerabdrucks für eine Zeile verwendet werden.

  • md5(5, 'gunchus', 8.2, 'bojjus', true, toDate('2010-4-4')) -> '4ce8a880bd621a1ffad0bca905e1bc5a'

mean

mean(<value1> : number) => number

Ruft das Mittel der Werte einer Spalte ab. Entspricht AVG.

  • mean(sales)

meanIf

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

Ruft das Mittel der Werte einer Spalte basierend auf einem Kriterium ab. Entspricht „avgIf“.

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

millisecond

millisecond(<value1> : timestamp, [<value2> : string]) => integer

Ruft den Millisekundenwert eines Datums ab. Sie können eine optionale Zeitzone in der Form „GMT“, „PST“, „UTC“, „America/Cayman“ übergeben. Standardmäßig wird die lokale Zeitzone verwendet. Informationen zu verfügbaren Formaten finden Sie unter der Java-Klasse SimpleDateFormat. 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

Dauer in Millisekunden für die Anzahl von Millisekunden.

  • milliseconds(2) -> 2L

min

min(<value1> : any) => any

Ruft den kleinsten Wert einer Spalte ab.

  • min(sales)

minIf

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

Ruft den kleinsten Wert einer Spalte basierend auf einem Kriterium ab.

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

minus

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

Subtrahiert Zahlen. Subtrahiert eine Anzahl von Tagen von einem Datum. Subtrahiert die Dauer von einem Zeitstempel. Subtrahiert einen Zeitstempel vom anderen, um den Unterschied in Millisekunden zu erhalten. Entspricht dem 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

Ruft den Minutenwert eines Zeitstempels ab. Sie können eine optionale Zeitzone in der Form „GMT“, „PST“, „UTC“, „America/Cayman“ übergeben. Standardmäßig wird die lokale Zeitzone verwendet. Informationen zu verfügbaren Formaten finden Sie unter der Java-Klasse SimpleDateFormat. 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

Dauer in Millisekunden für die Anzahl von Minuten.

  • minutes(2) -> 120000L

mlookup

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

Schlägt alle übereinstimmenden Zeilen der zwischengespeicherten Senke mithilfe der angegebenen Schlüssel, die mit den Schlüsseln der zwischengespeicherten Senke identisch sind, nach.

  • cacheSink#mlookup(movieId)

mod

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

Führt einen Modulo für ein Zahlenpaar aus. Entspricht dem Operator „%“.

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

month

month(<value1> : datetime) => integer

Ruft den Monatswert eines Datums oder Zeitstempels ab.

  • month(toDate('2012-8-8')) -> 8

monthsBetween

monthsBetween(<from date/timestamp> : datetime, <to date/timestamp> : datetime, [<roundoff> : boolean], [<time zone> : string]) => double

Ruft die Anzahl der Monate zwischen zwei Datumsangaben ab. Sie können die Berechnung abrunden. Sie können eine optionale Zeitzone in der Form „GMT“, „PST“, „UTC“, „America/Cayman“ übergeben. Standardmäßig wird die lokale Zeitzone verwendet. Informationen zu verfügbaren Formaten finden Sie unter der Java-Klasse SimpleDateFormat. 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

Multipliziert ein Paar Zahlen. Entspricht dem Operator „*“.

  • multiply(20, 10) -> 200
  • 20 * 10 -> 200

N

negate

negate(<value1> : number) => number

Negiert eine Zahl. Wandelt positive Zahlen in negative um (und umgekehrt).

  • negate(13) -> -13

nextSequence

nextSequence() => long

Gibt die nächste eindeutige Folge zurück. Die Zahl ist nur innerhalb einer Partition aufeinanderfolgend, und ihr ist die Partitions-ID (partitionId) vorangestellt.

  • nextSequence() == 12313112 -> false

normalize

normalize(<String to normalize> : string) => string

Normalisiert den Zeichenfolgenwert zum Trennen von Unicode-Akzentzeichen.

  • regexReplace(normalize('bo²s'), `\p{M}`, '') -> 'boys'

not

not(<value1> : boolean) => boolean

Logischer Negationsoperator.

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

notEquals

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

Operator für Vergleich auf Ungleichheit. Entspricht dem Operator „!=“.

  • 12 != 24 -> true
  • 'bojjus' != 'bo' + 'jjus' -> false

nTile

nTile([<value1> : integer]) => integer

Die NTile-Funktion dividiert die Zeilen für jede Fensterpartition in n Buckets von 1 bis höchstens n. Die Bucketwerte variieren um höchstens 1. Wenn die Anzahl der Zeilen in der Partition nicht gleichmäßig in die Anzahl der Buckets unterteilt werden kann, werden die Restwerte einzeln auf Buckets verteilt, beginnend mit dem ersten Bucket. Die NTile-Funktion ist nützlich für die Berechnung von tertiles, Quartilen, Dezilen und anderen üblichen zusammenfassenden Statistiken. Die Funktion berechnet zwei Variablen während der Initialisierung: Der Größe eines regulären Buckets wird eine zusätzliche Zeile hinzugefügt. Beide Variablen basieren auf der Größe der aktuellen Partition. Bei der Berechnung verfolgt die Funktion die aktuelle Zeilennummer, die aktuelle Bucketnummer und die Zeilennummer, an der der Bucket wechselt (bucketThreshold). Wenn die aktuelle Zeilennummer den Bucketschwellenwert erreicht, wird der Bucketwert um eins erhöht, und der Schwellenwert wird um die Bucketgröße erhöht (plus 1, wenn der aktuelle Bucket aufgefüllt wird).

  • nTile()
  • nTile(numOfBuckets)

null

null() => null

Gibt einen NULL-Wert zurück. Verwenden Sie die Funktion syntax(null()), wenn eine Spalte mit dem Namen „null“ vorhanden ist. Jeder Vorgang, in dem dieser Ausdruck verwendet wird, hat als Ergebnis 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

Logischer OR-Operator. Entspricht „||“.

  • or(true, false) -> true
  • true || false -> true

originColumns

originColumns(<streamName> : string) => any

Ruft alle Ausgabespalten für einen Ursprungsdatenstrom ab, in dem Spalten erstellt wurden. Muss in eine andere Funktion eingeschlossen werden.

  • array(toString(originColumns('source1')))

output

output() => any

Gibt die erste Zeile der Ergebnisse der zwischengespeicherten Senke zurück:

  • cacheSink#output()

outputs

output() => any

Gibt die gesamte Ausgabe an Zeilen der zwischengespeicherten Senke zurück:

  • cacheSink#outputs()

P

partitionId

partitionId() => integer

Gibt die aktuelle Partitions-ID zurück, in der sich die Eingabezeile befindet.

  • partitionId()

pMod

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

Führt einen positiven Modulo für ein Zahlenpaar aus.

  • pmod(-20, 8) -> 4

power

power(<value1> : number, <value2> : number) => double

Potenziert eine Zahl um den Potenzwert einer anderen.

  • power(10, 2) -> 100

R

radians

radians(<value1> : number) => double

Konvertiert Grad in Radiant

  • radians(180) => 3.141592653589793

random

random(<value1> : integral) => long

Gibt eine Zufallszahl mit einem optionalen Seed innerhalb einer Partition zurück. Der Seed sollte ein fester Wert sein und wird zusammen mit der partitionId zum Erzeugen von Zufallswerten verwendet.

  • random(1) == 1 -> false

rank

rank() => integer

Berechnet den Rang eines Werts in einer Gruppe von Werten, die in der Reihenfolge eines Fensters nach Klausel angegeben sind. Das Ergebnis ist 1 plus der Anzahl von Zeilen vor der aktuellen Zeile oder gleich dieser in der Reihenfolge der Partition. Die Werte erzeugen Lücken in der Folge. „Rank“ funktioniert auch dann, wenn die Daten nicht sortiert sind. In diesem Fall wird nach Änderungen der Werte gesucht.

  • rank()

reassociate

reassociate(<value1> : map, <value2> : binaryFunction) => map

Transformiert eine Zuordnung durch Zuordnen der Schlüssel zu neuen Werten. Es wird eine Zuordnungsfunktion verwendet, bei der Sie das Element als „#key“ und den aktuellen Wert als „#value“ aufrufen können.

  • 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

Akkumuliert Elemente in einem Array. Die reduce-Funktion erwartet einen Verweis auf einen Akkumulator und ein Element in der ersten Ausdrucksfunktion als #acc und #item. Außerdem wird erwartet, dass der resultierende Wert als #result in der zweiten Ausdrucksfunktion verwendet wird.

  • 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

Extrahiert eine übereinstimmende Teilzeichenfolge anhand eines angegebenen RegEx-Musters. Der letzte Parameter identifiziert die Übereinstimmungsgruppe und ist standardmäßig 1, wenn er nicht angegeben ist. <regex> (invertiertes Hochkomma) stimmt mit einer Zeichenfolge ohne Escapezeichen überein. Index 0 gibt alle Übereinstimmungen zurück. Ohne Übereinstimmungsgruppen gibt Index 1 und höher kein Ergebnis zurück.

  • 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

Überprüft, ob die Zeichenfolge mit dem angegebenen RegEx-Muster übereinstimmt. <regex> (invertiertes Hochkomma) stimmt mit einer Zeichenfolge ohne Escapezeichen überein.

  • 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

Ersetzt alle Vorkommen eines RegEx-Musters durch eine andere Teilzeichenfolge in der angegebenen Zeichenfolge. <regex> (invertiertes Hochkomma) stimmt mit einer Zeichenfolge ohne Escapezeichen überein.

  • 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

Unterteilt eine Zeichenfolge anhand eines Trennzeichens basierend auf einem regulären Ausdruck und gibt ein Array mit Zeichenfolgen zurück.

  • 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

Ersetzt alle Vorkommen einer Teilzeichenfolge durch eine andere Teilzeichenfolge in der angegebenen Zeichenfolge. Wenn der letzte Parameter weggelassen wird, wird standardmäßig eine leere Zeichenfolge angegeben.

  • replace('doggie dog', 'dog', 'cat') -> 'catgie cat'
  • replace('doggie dog', 'dog', '') -> 'gie '
  • replace('doggie dog', 'dog') -> 'gie '

reverse

reverse(<value1> : string) => string

Kehrt eine Zeichenfolge um.

  • reverse('gunchus') -> 'suhcnug'

right(<string to subset> : string, <number of characters> : integral) => string

Extrahiert eine Teilzeichenfolge mit einer Anzahl von Zeichen von rechts. Entspricht SUBSTRING(str, LENGTH(str) - n, n).

  • right('bojjus', 2) -> 'us'
  • right('bojjus', 20) -> 'bojjus'

rlike

rlike(<string> : string, <pattern match> : string) => boolean

Überprüft, ob die Zeichenfolge mit dem angegebenen RegEx-Muster übereinstimmt.

  • rlike('200.50', `(\d+).(\d+)`) -> true
  • rlike('bogus', `M[0-9]+.*`) -> false

round

round(<number> : number, [<scale to round> : number], [<rounding option> : integral]) => double

Rundet eine Zahl mit optional angegebenen Dezimalstellen und einem optionalen Rundungsmodus. Wenn die Dezimalstellen nicht angegeben sind, lautet der Standardwert 0. Wenn der Modus nicht angegeben ist, wird standardmäßig ROUND_HALF_UP(5) verwendet. Die Werte für die Rundung umfassen

  1. ROUND_UP: Rundungsmodus zum Runden von Null (0) weg.
  2. ROUND_DOWN – Rundungsmodus zum Runden gegen Null (0).
  3. ROUND_CEILING: Rundungsmodus zur Rundung gegen positive Unendlichkeit. [Bei positiver Eingabe identisch mit ROUND_UP. Wenn negativ, Verhalten wie ROUND_DOWN. Beispiel: -1,1 wäre -1,0 mit ROUND_CEILING und -2 mit ROUND_UP.]
  4. ROUND_FLOOR: Rundungsmodus zur Rundung gegen negative Unendlichkeit. [Bei positiver Eingabe identisch mit ROUND_DOWN. Wenn negativ, Verhalten wie ROUND_UP.]
  5. ROUND_HALF_UP – Rundungsmodus zur Rundung gegen „nächsten Nachbarn“, es sei denn, beide Nachbarn sind gleich weit entfernt; in diesem Fall gilt ROUND_UP. [Am häufigsten + Standard für Dataflow].
  6. ROUND_HALF_DOWN – Rundungsmodus zur Rundung gegen „nächsten Nachbarn“, es sei denn, beide Nachbarn sind gleich weit entfernt; in diesem Fall gilt ROUND_DOWN.
  7. ROUND_HALF_EVEN: Rundungsmodus zur Rundung gegen „nächsten Nachbarn“, es sei denn, beide Nachbarn sind gleich weit entfernt; in diesem Fall gilt Rundung gegen den geraden Nachbarn.
  8. ROUND_UNNECESSARY – Rundungsmodus zur Bestätigung, dass die Rundung ein genaues Ergebnis hat, sodass keine Rundung erforderlich ist.
  • round(100.123) -> 100.0
  • round(2.5, 0) -> 3.0
  • round(5.3999999999999995, 2, 7) -> 5.40

rowNumber

rowNumber() => integer

Weist Zeilen in einem Fenster eine sequenzielle Zeilennummerierung zu, die bei 1 beginnt.

  • rowNumber()

rpad

rpad(<string to pad> : string, <final padded length> : integral, <padding> : string) => string

Füllt die Zeichenfolge nach rechts mit der angegebenen Auffüllung bis zu einer bestimmten Länge auf. Ist die Zeichenfolge größer oder gleich der Länge, wird sie auf die Länge gekürzt.

  • rpad('dumbo', 10, '-') -> 'dumbo-----'
  • rpad('dumbo', 4, '-') -> 'dumb'
  • rpad('dumbo', 8, '<>') -> 'dumbo<><'

rtrim

rtrim(<string to trim> : string, [<trim characters> : string]) => string

Entfernt nachgestellte Zeichen aus einer Zeichenfolge. Wenn der zweite Parameter nicht angegeben ist, werden Leerstellen entfernt. Andernfalls werden Zeichen entfernt, die im zweiten Parameter angegeben sind.

  • rtrim(' dumbo ') -> ' dumbo'
  • rtrim('!--!du!mbo!', '-!') -> '!--!du!mbo'

E

second

second(<value1> : timestamp, [<value2> : string]) => integer

Ruft den Sekundenwert eines Datums ab. Sie können eine optionale Zeitzone in der Form „GMT“, „PST“, „UTC“, „America/Cayman“ übergeben. Standardmäßig wird die lokale Zeitzone verwendet. Informationen zu verfügbaren Formaten finden Sie unter der Java-Klasse SimpleDateFormat. 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

Dauer in Millisekunden für die Anzahl von Sekunden.

  • seconds(2) -> 2000L

setBitSet

setBitSet (<value1>: array, <value2>:array) => array

Legt Bitpositionen in diesem Bitset fest

  • setBitSet(toBitSet([10, 32]), [98]) => [4294968320L, 17179869184L]

sha1

sha1(<value1> : any, ...) => string

Berechnet den SHA-1-Hash einer Gruppe von Spalten verschiedener primitiver Datentypen und gibt eine hexadezimale Zeichenfolge mit 40 Zeichen zurück. Dies kann zum Berechnen eines Fingerabdrucks für eine Zeile verwendet werden.

  • sha1(5, 'gunchus', 8.2, 'bojjus', true, toDate('2010-4-4')) -> '46d3b478e8ec4e1f3b453ac3d8e59d5854e282bb'

sha2

sha2(<value1> : integer, <value2> : any, ...) => string

Berechnet den SHA-2-Hash einer Gruppe von Spalten verschiedener primitiver Datentypen mit einer angegebenen Bitlänge, die nur die Werte 0 (256), 224, 256, 384, 512 aufweisen kann. Dies kann zum Berechnen eines Fingerabdrucks für eine Zeile verwendet werden.

  • sha2(256, 'gunchus', 8.2, 'bojjus', true, toDate('2010-4-4')) -> 'afe8a553b1761c67d76f8c31ceef7f71b66a1ee6f4e6d3b5478bf68b47d06bd3'

sin

sin(<value1> : number) => double

Berechnet einen Sinuswert.

  • sin(2) -> 0.9092974268256817

sinh

sinh(<value1> : number) => double

Berechnet einen hyperbolischen Sinuswert.

  • sinh(0) -> 0.0

size

size(<value1> : any) => integer

Ermittelt die Größe eines Arrays oder Map-Typs

  • size(['element1', 'element2']) -> 2
  • size([1,2,3]) -> 3

skewness

skewness(<value1> : number) => double

Ruft die Schiefe einer Spalte ab.

  • skewness(sales)

skewnessIf

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

Ruft die Schiefe einer Spalte basierend auf einem Kriterium ab.

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

slice

slice(<array to slice> : array, <from 1-based index> : integral, [<number of items> : integral]) => array

Extrahiert eine Teilmenge eines Arrays ab einer Position. Die Position basiert auf 1. Wenn die Länge nicht angegeben ist, wird standardmäßig bis zum Ende der Zeichenfolge extrahiert.

  • 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

Sortiert das Array mithilfe der bereitgestellten Prädikatfunktion. Die sort-Funktion erwartet einen Verweis auf zwei aufeinander folgende Elemente in der Ausdrucksfunktion als #item1 und #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

Ruft den Code soundex für die Zeichenfolge ab.

  • soundex('genius') -> 'G520'

split

split(<string to split> : string, <split characters> : string) => array

Unterteilt eine Zeichenfolge basierend auf einem Trennzeichen und gibt ein Array mit Zeichenfolgen zurück.

  • 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

Berechnet die Quadratwurzel einer Zahl.

  • sqrt(9) -> 3

startsWith

startsWith(<string> : string, <substring to check> : string) => boolean

Überprüft, ob die Zeichenfolge mit der angegebenen Zeichenfolge beginnt.

  • startsWith('dumbo', 'du') -> true

stddev

stddev(<value1> : number) => double

Ruft die Standardabweichung einer Spalte ab.

  • stdDev(sales)

stddevIf

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

Ruft die Standardabweichung einer Spalte basierend auf einem Kriterium ab.

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

stddevPopulation

stddevPopulation(<value1> : number) => double

Ruft die Standardabweichung der Population einer Spalte ab.

  • stddevPopulation(sales)

stddevPopulationIf

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

Ruft die Standardabweichung der Population einer Spalte basierend auf einem Kriterium ab.

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

stddevSample

stddevSample(<value1> : number) => double

Ruft die Standardabweichung einer Stichprobe einer Spalte ab.

  • stddevSample(sales)

stddevSampleIf

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

Ruft die Standardabweichung einer Stichprobe einer Spalte basierend auf einem Kriterium ab.

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

subDays

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

Subtrahiert Tage von einem Datum oder einem Zeitstempel. Entspricht dem Operator „-“ für Datumsangaben.

  • subDays(toDate('2016-08-08'), 1) -> toDate('2016-08-07')

subMonths

subMonths(<date/timestamp> : datetime, <months to subtract> : integral) => datetime

Subtrahiert Monate von einem Datum oder einem Zeitstempel.

  • 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

Extrahiert eine Teilzeichenfolge mit einer bestimmten Länge ab einer Position. Die Position basiert auf 1. Wenn die Länge nicht angegeben ist, wird standardmäßig bis zum Ende der Zeichenfolge extrahiert.

  • 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, <count of delimiter occurences> : integral]) => string

Extrahiert den Substring vor den count-Vorkommen des Trennzeichens. Wenn count positiv ist, wird alles links vom letzten Trennzeichen (von links gezählt) zurückgegeben. Wenn count negativ ist, wird alles rechts vom letzten Trennzeichen (von rechts gezählt) zurückgegeben.

  • 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

Ruft die aggregierte Summe einer numerischen Spalte ab.

  • sum(col)

sumDistinct

sumDistinct(<value1> : number) => number

Ruft die aggregierte Summe unterschiedlicher Werte einer numerischen Spalte ab.

  • sumDistinct(col)

sumDistinctIf

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

Ruft die aggregierte Summe einer numerischen Spalte basierend auf Kriterien ab. Die Bedingung kann auf jeder Spalte basieren.

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

sumIf

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

Ruft die aggregierte Summe einer numerischen Spalte basierend auf Kriterien ab. Die Bedingung kann auf jeder Spalte basieren.

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

T

tan

tan(<value1> : number) => double

Berechnet einen Tangenswert.

  • tan(0) -> 0.0

tanh

tanh(<value1> : number) => double

Berechnet einen hyperbolischen Tangenswert.

  • tanh(0) -> 0.0

toBase64

toBase64(<value1> : string, <encoding type> : string]) => string

Codiert die angegebene Zeichenfolge in Base64. Optional können Sie den Codierungstyp übergeben.

  • toBase64('bojjus') -> 'Ym9qanVz'
  • toBase64('± 25000, € 5.000,- |', 'Windows-1252') -> 'sSAyNTAwMCwggCA1LjAwMCwtIHw='

toBinary

toBinary(<value1> : any) => binary

Konvertiert beliebige numerische Werte/Datumsangaben/Zeitstempel/Zeichenfolgen in eine binäre Darstellung.

  • toBinary(3) -> [0x11]

toBoolean

toBoolean(<value1> : string) => boolean

Konvertiert die Werte „t“, „true“, „y“, „yes“ und „1“ in „true“ sowie „f“, „false“, „n“, „no“ und „0“ in „false“ und alle anderen Werte in NULL.

  • toBoolean('true') -> true
  • toBoolean('n') -> false
  • isNull(toBoolean('truthy')) -> true

toByte

toByte(<value> : any, [<format> : string], [<locale> : string]) => byte

Konvertiert beliebige numerische oder Zeichenfolgenwerte in einen Bytewert. Ein optionales Java-Dezimalzahlenformat kann für die Umwandlung verwendet werden.

  • toByte(123)
  • 123
  • toByte(0xFF)
  • -1
  • toByte('123')
  • 123

toDate

toDate(<string> : any, [<date format> : string]) => date

Konvertiert die Eingabedatumszeichenfolge unter Verwendung eines optionalen Eingabedatumsformats in ein Datum. Informationen zu verfügbaren Formaten finden Sie unter der Java-Klasse SimpleDateFormat. Wenn das Eingabedatumsformat weggelassen wird, ist das Standardformat jjjj-[M]M-[t]t. Zulässige Formate sind: [ jjjj, jjjj-[M]M, jjjj-[M]M-[t]t, jjjj-[M]M-[t]tT* ].

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

Wandelt beliebige numerische oder Zeichenfolgenwerte in einen decimal-Wert um. Wenn Genauigkeit und Dezimalstellen nicht angegeben werden, wird standardmäßig (10,2) verwendet. Ein optionales Java-Dezimalzahlenformat kann für die Umwandlung verwendet werden. Ein optionales Gebietsschemaformat in Form der BCP47-Sprache (z. B. „en-US“, „de“ oder „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

Wandelt beliebige numerische oder Zeichenfolgenwerte in einen double-Wert um. Ein optionales Java-Dezimalzahlenformat kann für die Umwandlung verwendet werden. Ein optionales Gebietsschemaformat in Form der BCP47-Sprache (z. B. „en-US“, „de“ oder „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

Wandelt beliebige numerische oder Zeichenfolgenwerte in einen float-Wert um. Ein optionales Java-Dezimalzahlenformat kann für die Umwandlung verwendet werden. Kürzt alle double-Werte.

  • 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

Konvertiert beliebige numerische oder Zeichenfolgenwerte in einen Integer-Wert. Ein optionales Java-Dezimalzahlenformat kann für die Umwandlung verwendet werden. Kürzt alle long-, float- und double-Werte.

  • toInteger(123) -> 123
  • toInteger('123') -> 123
  • toInteger('$123', '$###') -> 123

toLong

toLong(<value> : any, [<format> : string], [<locale> : string]) => long

Wandelt beliebige numerische oder Zeichenfolgenwerte in einen long-Wert um. Ein optionales Java-Dezimalzahlenformat kann für die Umwandlung verwendet werden. Kürzt alle float- und double-Werte.

  • toLong(123) -> 123
  • toLong('123') -> 123
  • toLong('$123', '$###') -> 123

topN

topN(<column/expression> : any, <count> : long, <n> : integer) => array

Ruft basierend auf dem „count“-Argument die obersten N-Werte für diese Spalte ab.

  • topN(custId, count, 5)
  • topN(productId, num_sales, 10)

toShort

toShort(<value> : any, [<format> : string], [<locale> : string]) => short

Wandelt beliebige numerische oder Zeichenfolgenwerte in einen short-Wert um. Ein optionales Java-Dezimalzahlenformat kann für die Umwandlung verwendet werden. Kürzt alle integer-, long-, float- und double-Werte.

  • toShort(123) -> 123
  • toShort('123') -> 123
  • toShort('$123', '$###') -> 123

toString

toString(<value> : any, [<number format/date format> : string], [<date locale> : string]) => string

Wandelt einen primitiven Datentyp in eine Zeichenfolge um. Für Zahlen und Datumsangaben kann ein Format angegeben werden. Wenn es nicht angegeben ist, wird die Standardeinstellung des Systems verwendet. Das Java-Dezimalzahlenformat wird für Zahlen verwendet. Alle zulässigen Formate finden Sie unter „Java SimpleDateFormat“. Das Standardformat lautet jjjj-MM-tt. Für Datum oder Zeitstempel kann optional ein Gebietsschema angegeben werden.

  • 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

Wandelt eine Zeichenfolge in einen Zeitstempel mit einem optionalen Zeitstempelformat um. Wenn das Zeitstempelformat nicht angegeben ist, wird das Standardmuster „jjjj-[M]M-[t]t hh:mm:ss[.f...]“ verwendet. Sie können eine optionale Zeitzone in der Form „GMT“, „PST“, „UTC“, „America/Cayman“ übergeben. Der Zeitstempel unterstützt eine Genauigkeit im Millisekundenbereich mit dem Wert 999. Informationen zu verfügbaren Formaten finden Sie unter der Java-Klasse SimpleDateFormat. 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

Wandelt den Zeitstempel in UTC um. Sie können eine optionale Zeitzone in der Form „GMT“, „PST“, „UTC“, „America/Cayman“ übergeben. Der Standardwert ist die aktuelle Zeitzone. Informationen zu verfügbaren Formaten finden Sie unter der Java-Klasse SimpleDateFormat. 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

Ersetzt eine Gruppe von Zeichen durch eine andere Gruppe von Zeichen in der Zeichenfolge. Zeichen werden 1:1 ersetzt.

  • translate('(bojjus)', '()', '[]') -> '[bojjus]'
  • translate('(gunchus)', '()', '[') -> '[gunchus'

trim

trim(<string to trim> : string, [<trim characters> : string]) => string

Entfernt vorangestellte und nachgestellte Zeichen aus einer Zeichenfolge. Wenn der zweite Parameter nicht angegeben ist, werden Leerstellen entfernt. Andernfalls werden Zeichen entfernt, die im zweiten Parameter angegeben sind.

  • trim(' dumbo ') -> 'dumbo'
  • trim('!--!du!mbo!', '-!') -> 'dumbo'

true

true() => boolean

Gibt immer den Wert TRUE zurück. Verwenden Sie die Funktion syntax(true()), wenn eine Spalte mit dem Namen „true“ vorhanden ist.

  • (10 + 20 == 30) -> true
  • (10 + 20 == 30) -> true()

typeMatch

typeMatch(<type> : string, <base type> : string) => boolean

Stimmt mit dem Typ der Spalte überein. Kann nur in Musterausdrücken verwendet werden. „number“ stimmt mit „short“, „integer“, „long“, „double“, „float“ oder „decimal“ überein, „integral“ stimmt mit „short“, „integer“ oder „long“ überein, „fractional“ stimmt mit „double“, „float“ oder „decimal“ überein, und „datetime“ stimmt mit „date“ oder „timestamp“ überein.

  • typeMatch(type, 'number')
  • typeMatch('date', 'datetime')

U

unescape

unescape(<string_to_escape> : string, <format> : string) => string

Entfernt die Escapezeichen einer Zeichenfolge entsprechend einem Format. Literalwerte für zulässige Formate sind „json“, „xml“, „ecmascript“, „html“ und „java“.

  • unescape('{\\\\\"value\\\\\": 10}', 'json')
  • '{\\\"value\\\": 10}'

unfold

unfold (<value1>: array) => any

Entfaltet ein Array in eine Reihe von Zeilen und wiederholt die Werte für die verbleibenden Spalten in jeder Zeile.

  • unfold(addresses) => any
  • unfold( @(name = salesPerson, sales = salesAmount) ) => any

unhex

unhex(<value1>: string) => binary

Diese Funktion konvertiert die Zeichenfolgendarstellung eines Hexadezimalwerts in einen Binärwert. Dies kann mit sha2 und md5 verwendet werden, um eine Zeichenfolge in eine binäre Darstellung umzuwandeln.

  • 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

Gibt eine Vereinigungsmenge verschiedener Elemente aus 2 Arrays zurück.

  • union([10, 20, 30], [20, 40]) => [10, 20, 30, 40]

upper

upper(<value1> : string) => string

Wandelt eine Zeichenfolge in Großschreibung um.

  • upper('bojjus') -> 'BOJJUS'

uuid

uuid() => string

Gibt die generierte UUID zurück.

  • uuid()

V

variance

variance(<value1> : number) => double

Ruft die Varianz einer Spalte ab.

  • variance(sales)

varianceIf

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

Ruft die Varianz einer Spalte basierend auf einem Kriterium ab.

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

variancePopulation

variancePopulation(<value1> : number) => double

Ruft die Varianz der Population einer Spalte ab.

  • variancePopulation(sales)

variancePopulationIf

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

Ruft die Varianz der Population einer Spalte basierend auf einem Kriterium ab.

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

varianceSample

varianceSample(<value1> : number) => double

Ruft die ausgewogene Varianz einer Spalte ab.

  • varianceSample(sales)

varianceSampleIf

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

Ruft die ausgewogene Varianz einer Spalte basierend auf einem Kriterium ab.

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

W

weekOfYear

weekOfYear(<value1> : datetime) => integer

Ruft die Woche des Jahres aus einem Datum ab.

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

weeks

weeks(<value1> : integer) => long

Dauer in Millisekunden für die Anzahl von Wochen.

  • weeks(2) -> 1209600000L

X

xor

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

Logischer XOR-Operator. Entspricht dem Operator „^“.

  • xor(true, false) -> true
  • xor(true, true) -> false
  • true ^ false -> true

Y

year

year(<value1> : datetime) => integer

Ruft den Jahreswert eines Datums ab.

  • year(toDate('2012-8-8')) -> 2012