Verwendung 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:
- Aggregatfunktionen
- Arrayfunktionen
- Zwischengespeicherte Lookupfunktionen
- Konvertierungsfunktionen
- Datums- und Uhrzeitfunktionen
- Ausdrucksfunktionen
- map-Funktionen
- Metafunktionen
- Fensterfunktionen
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. Fügt vielen Tagen ein Datum hinzu. 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 Zeichenfolge einem Zeichenfolgentyp zugeordnet. 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. Wenn der Schlüssel nicht gefunden wird, 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. Entspricht dem 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-Hash einer Gruppe von Spalten verschiedener primitiver Datentypen mit einer angegebenen Bitlänge, die nur ein Vielfaches 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-Hash einer Gruppe von Spalten verschiedener primitiver Datentypen mit einer angegebenen Bitlänge, die nur ein Vielfaches 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 mit einer der Typkonvertierungsfunktionen (? date, ? string ...) erfolgen. Nur Adressspaltennamen, die zur Entwurfszeit namentlich bekannt sind. 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 mit einer der Typkonvertierungsfunktionen (TO_DATE, TO_STRING, ...) durchgeführt werden. Nur Adressspaltennamen, die zur Entwurfszeit namentlich bekannt sind. 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 ...). Nur Adressspaltennamen, die zur Entwurfszeit namentlich bekannt sind. 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 mit einer der Typkonvertierungsfunktionen (TO_DATE, TO_STRING, ...) durchgeführt werden. Nur Adressspaltennamen, die zur Entwurfszeit namentlich bekannt sind. 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 mit einer der Typkonvertierungsfunktionen (TO_DATE, TO_STRING, ...) durchgeführt werden. Nur Adressspaltennamen, die zur Entwurfszeit namentlich bekannt sind. 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 anhand 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))
K
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 Data Factory nur Spalten zurück, die durch Schemadrift gedriftet sind.
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 mindestens eine optionale Spalte angegeben wird, werden NULL-Werte in der Zählung 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 zur derselben 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. Es wird standardmäßig auf die aktuelle Zeitzone festgelegt. 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))
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 dasselbe 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 wird, geht Data Factory von „false“ aus.
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. Es wird standardmäßig auf die aktuelle Zeitzone festgelegt. 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. Nur Adressspaltennamen, die zur Entwurfszeit namentlich bekannt sind. Berechnete Eingaben werden nicht unterstützt. Sie können aber Parameterersetzungen verwenden.
hasColumn('parent')
hasError
hasError([<value1> : string]) => boolean
Überprüft, ob die Ressource 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 sind, wird der Wert als NULL betrachtet. Beide 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 zwei 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. Ausnahmen sind die folgenden Sonderzeichen: „_“ entspricht einem einzelnen Zeichen in der Eingabe (ähnlich „.“ in regulären posix
-Ausdrücken), „%“ entspricht null oder mehr Zeichen in der Eingabe (ähnlich „.*
“ 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
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
- ROUND_UP: Rundungsmodus zum Runden von Null (0) weg.
- ROUND_DOWN – Rundungsmodus zum Runden gegen Null (0).
- 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.]
- ROUND_FLOOR: Rundungsmodus zur Rundung gegen negative Unendlichkeit. [Bei positiver Eingabe identisch mit ROUND_DOWN. Wenn negativ, Verhalten wie ROUND_UP.]
- 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].
- 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.
- 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.
- 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
Zugehöriger Inhalt
- Liste aller Aggregatfunktionen
- Liste aller Arrayfunktionen
- Liste aller zwischengespeicherten Suchfunktionen
- Liste aller Konvertierungsfunktionen
- Liste aller Datums- und Uhrzeitfunktionen
- Liste aller Ausdrucksfunktionen
- Liste aller Zuordnungsfunktionen
- Liste aller Metafunktionen
- Liste aller Fensterfunktionen
- Erfahren Sie, wie Sie den Ausdrucks-Generator verwenden.