Gebruik van expressies voor gegevenstransformatie in toewijzingsgegevensstromen
VAN TOEPASSING OP: Azure Data Factory Azure Synapse Analytics
Tip
Probeer Data Factory uit in Microsoft Fabric, een alles-in-één analyseoplossing voor ondernemingen. Microsoft Fabric omvat alles, van gegevensverplaatsing tot gegevenswetenschap, realtime analyses, business intelligence en rapportage. Meer informatie over het gratis starten van een nieuwe proefversie .
Gegevensstromen zijn beschikbaar in Zowel Azure Data Factory als Azure Synapse Pipelines. Dit artikel is van toepassing op toewijzingsgegevensstromen. Als u geen ervaring hebt met transformaties, raadpleegt u het inleidende artikel Gegevens transformeren met behulp van een toewijzingsgegevensstroom.
De volgende artikelen bevatten informatie over het gebruik van alle expressies en functies die worden ondersteund door Azure Data Factory en Azure Synapse Analytics in toewijzingsgegevensstromen. Raadpleeg de volgende artikelen voor samenvattingen van elk type functie dat wordt ondersteund:
- Statistische functies
- Matrixfuncties
- Opzoekfuncties in cache
- Conversiefuncties
- Datum- en tijdfuncties
- Expressiefuncties
- Kaartfuncties
- Metafuncties
- Vensterfuncties
Alfabetische lijst met alle functies
Hieronder volgt een alfabetische lijst met alle functies die beschikbaar zijn in toewijzingsgegevensstromen.
A
abs
abs(<value1> : number) => number
Absolute waarde van een getal.
abs(-20) -> 20
abs(10) -> 10
acos
acos(<value1> : number) => double
Berekent een inverse cosinuswaarde.
acos(1) -> 0.0
add
add(<value1> : any, <value2> : any) => any
Hiermee voegt u een paar tekenreeksen of getallen toe. Voegt een datum toe aan vele dagen. Voegt een duur toe aan een tijdstempel. Voegt één matrix van vergelijkbaar type toe aan een ander. Hetzelfde als de +-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
Voeg dagen toe aan een datum of tijdstempel. Hetzelfde als de operator + voor datum.
addDays(toDate('2016-08-08'), 1) -> toDate('2016-08-09')
addMonths
addMonths(<date/timestamp> : datetime, <months to add> : integral, [<value3> : string]) => datetime
Maanden toevoegen aan een datum of tijdstempel. U kunt desgewenst een tijdzone doorgeven.
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
Logische AND-operator. Hetzelfde als &&.
and(true, false) -> false
true && false -> false
approxDistinctCount
approxDistinctCount(<value1> : any, [ <value2> : double ]) => long
Hiermee haalt u het totaalaantal afzonderlijke waarden voor een kolom op. De optionele tweede parameter is het beheren van de schattingsfout.
approxDistinctCount(ProductID, .05) => long
array
array([<value1> : any], ...) => array
Hiermee maakt u een matrix met items. Alle items moeten van hetzelfde type zijn. Als er geen items zijn opgegeven, is een lege tekenreeksmatrix de standaardwaarde. Hetzelfde als een [] aanmaakoperator.
array('Seattle', 'Washington')
['Seattle', 'Washington']
['Seattle', 'Washington'][1]
'Washington'
ascii
ascii(<Input> : string) => number
Retourneert de numerieke waarde van het invoerteken. Als de invoertekenreeks meer dan één teken heeft, wordt de numerieke waarde van het eerste teken geretourneerd
ascii('A') -> 65
ascii('a') -> 97
asin
asin(<value1> : number) => double
Berekent een inverse sinuswaarde.
asin(0) -> 0.0
assertErrorMessages
assertErrorMessages() => map
Retourneert een kaart van alle foutberichten voor de rij met assert-id als sleutel.
Voorbeelden
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
Hiermee maakt u een kaart met sleutel/waarden. Alle sleutels en waarden moeten van hetzelfde type zijn. Als er geen items zijn opgegeven, wordt standaard een toewijzing van een tekenreeks aan tekenreekstype toegewezen. Hetzelfde als een [ -> ]
operator voor het maken. Sleutels en waarden moeten met elkaar worden vervangen.
associate('fruit', 'apple', 'vegetable', 'carrot' )=> ['fruit' -> 'apple', 'vegetable' -> 'carrot']
at
at(<value1> : array/map, <value2> : integer/key type) => array
Hiermee zoekt u het element in een matrixindex. De index is gebaseerd op 1. Buiten de grenzen-index resulteert in een null-waarde. Hiermee zoekt u een waarde in een kaart op basis van een sleutel. Als de sleutel niet wordt gevonden, wordt null geretourneerd.
at(['apples', 'pears'], 1) => 'apples'
at(['fruit' -> 'apples', 'vegetable' -> 'carrot'], 'fruit') => 'apples'
atan
atan(<value1> : number) => double
Berekent een inverse tangenswaarde.
atan(0) -> 0.0
atan2
atan2(<value1> : number, <value2> : number) => double
Berekent de hoek in radialen tussen de positieve x-as van een vlak en het punt dat door de coördinaten wordt opgegeven.
atan2(0, 0) -> 0.0
avg
avg(<value1> : number) => number
Hiermee haalt u het gemiddelde van de waarden van een kolom op.
avg(sales)
avgIf
avgIf(<value1> : boolean, <value2> : number) => number
Op basis van een criterium wordt het gemiddelde van de waarden van een kolom opgehaald.
avgIf(region == 'West', sales)
B
between
between(<value1> : any, <value2> : any, <value3> : any) => boolean
Controleert of de eerste waarde zich tussen twee andere waarden bevindt. Numerieke, tekenreeks- en datum/tijd-waarden kunnen worden vergeleken
between(10, 5, 24)
true
between(currentDate(), currentDate() + 10, currentDate() + 20)
false
bitwiseAnd
bitwiseAnd(<value1> : integral, <value2> : integral) => integral
Bitwise and operator across integral types. Hetzelfde als & operator
bitwiseAnd(0xf4, 0xef)
0xe4
(0xf4 & 0xef)
0xe4
bitwiseOr
bitwiseOr(<value1> : integral, <value2> : integral) => integral
Bitwise Or operator over integrale typen. Hetzelfde als | bediener
bitwiseOr(0xf4, 0xef)
0xff
(0xf4 | 0xef)
0xff
bitwiseXor
bitwiseXor(<value1> : any, <value2> : any) => any
Bitwise Or operator over integrale typen. Hetzelfde als | bediener
bitwiseXor(0xf4, 0xef)
0x1b
(0xf4 ^ 0xef)
0x1b
(true ^ false)
true
(true ^ true)
false
blake2b
blake2b(<value1> : integer, <value2> : any, ...) => string
Berekent de Blake2-samenvatting van een set kolommen met verschillende primitieve gegevenstypen met een bitlengte, die slechts veelvouden van 8 tussen 8 en 512 kan zijn. Het kan worden gebruikt om een vingerafdruk voor een rij te berekenen
blake2b(256, 'gunchus', 8.2, 'bojjus', true, toDate('2010-4-4'))
'c9521a5080d8da30dffb430c50ce253c345cc4c4effc315dab2162dac974711d'
blake2bBinary
blake2bBinary(<value1> : integer, <value2> : any, ...) => binary
Berekent de Blake2-samenvatting van een set kolommen met verschillende primitieve gegevenstypen met een bitlengte, die slechts veelvouden van 8 tussen 8 en 512 kan zijn. Het kan worden gebruikt om een vingerafdruk voor een rij te berekenen
blake2bBinary(256, 'gunchus', 8.2, 'bojjus', true, toDate('2010-4-4'))
unHex('c9521a5080d8da30dffb430c50ce253c345cc4c4effc315dab2162dac974711d')
byItem
byItem(<parent column> : any, <column name> : string) => any
Zoek een subitem in een structuur of matrix van structuur. Als er meerdere overeenkomsten zijn, wordt de eerste overeenkomst geretourneerd. Als er geen overeenkomst is, wordt een NULL-waarde geretourneerd. De geretourneerde waarde moet worden geconverteerd door een van de typeconversieacties (? datum, ? tekenreeks...). Alleen adreskolomnamen die bekend zijn tijdens het ontwerp op basis van hun naam. Berekende invoer wordt niet ondersteund, maar u kunt parametervervangingen gebruiken.
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
Selecteert een kolomwaarde op naam in de stream. U kunt een optionele stroomnaam doorgeven als het tweede argument. Als er meerdere overeenkomsten zijn, wordt de eerste overeenkomst geretourneerd. Als er geen overeenkomst is, wordt een NULL-waarde geretourneerd. De geretourneerde waarde moet worden geconverteerd door een van de typeconversiefuncties (TO_DATE, TO_STRING ...). Alleen adreskolomnamen die bekend zijn tijdens het ontwerp op basis van hun naam. Berekende invoer wordt niet ondersteund, maar u kunt parametervervangingen gebruiken.
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
Selecteer een matrix met kolommen op naam in de stream. U kunt een optionele stroomnaam doorgeven als het tweede argument. Als er meerdere overeenkomsten zijn, wordt de eerste overeenkomst geretourneerd. Als er geen overeenkomsten zijn voor een kolom, is de volledige uitvoer een NULL-waarde. De geretourneerde waarde vereist een typeconversiefunctie (toDate, toString, ...). Alleen adreskolomnamen die bekend zijn tijdens het ontwerp op basis van hun naam. Berekende invoer wordt niet ondersteund, maar u kunt parametervervangingen gebruiken.
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
Selecteert een kolomwaarde op naam in de oorsprongsstroom. Het tweede argument is de naam van de oorsprongsstroom. Als er meerdere overeenkomsten zijn, wordt de eerste overeenkomst geretourneerd. Als er geen overeenkomst is, wordt een NULL-waarde geretourneerd. De geretourneerde waarde moet worden geconverteerd door een van de typeconversiefuncties (TO_DATE, TO_STRING ...). Alleen adreskolomnamen die bekend zijn tijdens het ontwerp op basis van hun naam. Berekende invoer wordt niet ondersteund, maar u kunt parametervervangingen gebruiken.
toString(byOrigin('ancestor', 'ancestorStream'))
byOrigins
byOrigins(<column names> : array, [<origin stream name> : string]) => any
Hiermee selecteert u een matrix met kolommen op naam in de stream. Het tweede argument is de stroom waaruit deze afkomstig is. Als er meerdere overeenkomsten zijn, wordt de eerste overeenkomst geretourneerd. Als er geen overeenkomst is, wordt een NULL-waarde geretourneerd. De geretourneerde waarde moet worden geconverteerd door een van de typeconversiefuncties (TO_DATE, TO_STRING ...). Alleen adreskolomnamen die bekend zijn tijdens het ontwerp op basis van hun naam. Berekende invoer wordt niet ondersteund, maar u kunt parametervervangingen gebruiken.
toString(byOrigins(['ancestor1', 'ancestor2'], 'ancestorStream'))
byPath
byPath(<value1> : string, [<streamName> : string]) => any
Hiermee zoekt u een hiërarchisch pad op naam in de stream. U kunt een optionele stroomnaam doorgeven als het tweede argument. Als er geen dergelijk pad wordt gevonden, wordt null geretourneerd. Kolomnamen/paden die bekend zijn tijdens het ontwerp, moeten alleen worden geadresseerd door hun naam of puntnotatiepad. Berekende invoer wordt niet ondersteund, maar u kunt parametervervangingen gebruiken.
byPath('grandpa.parent.child') => column
byPosition
byPosition(<position> : integer) => any
Selecteert een kolomwaarde op de relatieve positie (1 gebaseerd) in de stroom. Als de positie buiten de grenzen valt, wordt een NULL-waarde geretourneerd. De geretourneerde waarde moet worden geconverteerd door een van de typeconversiefuncties (TO_DATE, TO_STRING ...). Berekende invoer wordt niet ondersteund, maar u kunt parametervervangingen gebruiken.
toString(byPosition(1))
toDecimal(byPosition(2), 10, 2)
toBoolean(byName(4))
toString(byName($colName))
toString(byPosition(1234))
E
case
case(<condition> : boolean, <true_expression> : any, <false_expression> : any, ...) => any
Op basis van afwisselende voorwaarden wordt één waarde of de andere waarde toegepast. Als het aantal invoerwaarden even is, wordt de andere standaard ingesteld op NULL voor de laatste voorwaarde.
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
Berekent de kubushoofdmap van een getal.
cbrt(8) -> 2.0
ceil
ceil(<value1> : number) => number
Retourneert het kleinste gehele getal dat niet kleiner is dan het getal.
ceil(-0.1) -> 0
char
char(<Input> : number) => string
Retourneert het ascii-teken dat wordt vertegenwoordigd door het invoernummer. Als getal groter is dan 256, is het resultaat gelijk aan char(getal % 256)
char(65) -> 'A'
char(97) -> 'a'
coalesce
coalesce(<value1> : any, ...) => any
Retourneert de eerste niet null-waarde van een set invoerwaarden. Alle invoer moet van hetzelfde type zijn.
coalesce(10, 20) -> 10
coalesce(toString(null), toString(null), 'dumbo', 'bo', 'go') -> 'dumbo'
collect
collect(<value1> : any) => array
Verzamelt alle waarden van de expressie in de geaggregeerde groep in een matrix. Structuren kunnen tijdens dit proces worden verzameld en getransformeerd naar alternatieve structuren. Het aantal items is gelijk aan het aantal rijen in die groep en kan null-waarden bevatten. Het aantal verzamelde items moet klein zijn.
collect(salesPerson)
collect(firstName + lastName))
collect(@(name = salesPerson, sales = salesAmount) )
collectUnique
collectUnique(<value1> : any) => array
Verzamelt alle waarden van de expressie in de geaggregeerde groep in een unieke matrix. Structuren kunnen tijdens dit proces worden verzameld en getransformeerd naar alternatieve structuren. Het aantal items is gelijk aan het aantal rijen in die groep en kan null-waarden bevatten. Het aantal verzamelde items moet klein zijn.
collect(salesPerson)
collect(firstName + lastName))
collect(@(name = salesPerson, sales = salesAmount) )
columnNames
columnNames(<value1>
columnNames( : string, i><value1> : booleaanse waarde) = matrix>
Hiermee haalt u de namen op van alle uitvoerkolommen voor een stream. U kunt een optionele stroomnaam doorgeven als het eerste argument. Het tweede argument is ook optioneel, waarbij false als standaardwaarde wordt gebruikt. Als u het tweede argument true()
instelt op, retourneert Data Factory alleen kolommen die worden gedrift via schemadrift.
columnNames()
columnNames('DeriveStream')
columnNames('DeriveStream', true())
columnNames('', true())
columns
columns([<stream name> : string]) => any
Hiermee haalt u de waarden van alle uitvoerkolommen voor een stream op. U kunt een optionele stroomnaam doorgeven als het tweede argument.
columns()
columns('DeriveStream')
compare
compare(<value1> : any, <value2> : any) => integer
Vergelijkt twee waarden van hetzelfde type. Retourneert een negatief geheel getal als waarde1 < waarde2, 0 als waarde1 == waarde2, positieve waarde als waarde1 > waarde2.
(compare(12, 24) < 1) -> true
(compare('dumbo', 'dum') > 0) -> true
concat
concat(<this> : string, <that> : string, ...) => string
Voegt een variabel aantal tekenreeksen samen. Hetzelfde als de +-operator met tekenreeksen.
concat('dataflow', 'is', 'awesome') -> 'dataflowisawesome'
'dataflow' + 'is' + 'awesome' -> 'dataflowisawesome'
isNull('sql' + null) -> true
concatWS
concatWS(<separator> : string, <this> : string, <that> : string, ...) => string
Voegt een variabel aantal tekenreeksen samen met een scheidingsteken. De eerste parameter is het scheidingsteken.
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
Retourneert waar als een element in de opgegeven matrix resulteert in waar in het opgegeven predicaat. Bevat verwacht een verwijzing naar één element in de predicaatfunctie als #item.
contains([1, 2, 3, 4], #item == 3) -> true
contains([1, 2, 3, 4], #item > 5) -> false
cos
cos(<value1> : number) => double
Berekent een cosinuswaarde.
cos(10) -> -0.8390715290764524
cosh
cosh(<value1> : number) => double
Berekent een cosinus hyperbolicus van een waarde.
cosh(0) -> 1.0
count
count([<value1> : any]) => long
Hiermee haalt u het totaalaantal waarden op. Als een of meer optionele kolommen zijn opgegeven, worden NULL-waarden in het aantal genegeerd.
count(custId)
count(custId, custName)
count()
count(iif(isNull(custId), 1, NULL))
countAll
countAll([<value1> : any]) => long
Hiermee haalt u het totale aantal waarden op, inclusief null-waarden.
countAll(custId)
countAll()
countDistinct
countDistinct(<value1> : any, [<value2> : any], ...) => long
Hiermee haalt u het totaalaantal afzonderlijke waarden van een set kolommen op.
countDistinct(custId, custName)
countAllDistinct
countAllDistinct(<value1> : any, [<value2> : any], ...) => long
Hiermee haalt u het totaalaantal afzonderlijke waarden van een set kolommen op, inclusief null-waarden.
countAllDistinct(custId, custName)
countIf
countIf(<value1> : boolean, [<value2> : any]) => long
Op basis van een criterium wordt het totale aantal waarden opgehaald. Als de optionele kolom is opgegeven, worden NULL-waarden in het aantal genegeerd.
countIf(state == 'CA' && commission < 10000, name)
covariancePopulation
covariancePopulation(<value1> : number, <value2> : number) => double
Hiermee haalt u de covariantie van de populatie op tussen twee kolommen.
covariancePopulation(sales, profit)
covariancePopulationIf
covariancePopulationIf(<value1> : boolean, <value2> : number, <value3> : number) => double
Op basis van een criterium wordt de covariantie van de populatie van twee kolommen ophaalt.
covariancePopulationIf(region == 'West', sales)
covarianceSample
covarianceSample(<value1> : number, <value2> : number) => double
Hiermee haalt u de covariantie van de steekproef van twee kolommen op.
covarianceSample(sales, profit)
covarianceSampleIf
covarianceSampleIf(<value1> : boolean, <value2> : number, <value3> : number) => double
Op basis van een criterium wordt de covariantie van de steekproef van twee kolommen ophaalt.
covarianceSampleIf(region == 'West', sales, profit)
crc32
crc32(<value1> : any, ...) => long
Berekent de CRC32-hash van een set kolommen met verschillende primitieve gegevenstypen op basis van een bitlengte, die alleen van waarden 0(256), 224, 256, 384, 512 kan zijn. Deze kan worden gebruikt om een vingerafdruk voor een rij te berekenen.
crc32(256, 'gunchus', 8.2, 'bojjus', true, toDate('2010-4-4')) -> 3630253689L
cumeDist
cumeDist() => integer
De functie CumeDist berekent de positie van een waarde ten opzichte van alle waarden in de partitie. Het resultaat is het aantal rijen dat voorafgaat aan of gelijk is aan de huidige rij in de volgorde van de partitie gedeeld door het totale aantal rijen in de vensterpartitie. Eventuele gelijkmakende waarden in de volgorde resulteren in dezelfde positie.
cumeDist()
currentDate
currentDate([<value1> : string]) => date
Hiermee haalt u de huidige datum op waarop deze taak wordt uitgevoerd. U kunt een optionele tijdzone doorgeven in de vorm van 'GMT', 'PST', 'UTC', 'America/Captain'. De lokale tijdzone van het datacenter/de regio van de data factory wordt als standaard gebruikt. Raadpleeg de klasse van SimpleDateFormat
Java voor beschikbare indelingen. 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
Hiermee haalt u de huidige tijdstempel op wanneer de taak begint te worden uitgevoerd met de lokale tijdzone.
currentTimestamp() == toTimestamp('2250-12-31 12:12:12') -> false
currentUTC
currentUTC([<value1> : string]) => timestamp
Hiermee haalt u de huidige tijdstempel op als UTC. Als u wilt dat uw huidige tijd wordt geïnterpreteerd in een andere tijdzone dan de tijdzone van uw cluster, kunt u een optionele tijdzone doorgeven in de vorm van GMT, PST, UTC, Amerika/Valentor. Deze wordt standaard ingesteld op de huidige tijdzone. Raadpleeg de klasse van SimpleDateFormat
Java voor beschikbare indelingen. https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html. Als u de UTC-tijd wilt converteren naar een andere tijdzone, gebruikt u 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
Hiermee wordt de dag van de maand opgeslagen op basis van een datum.
dayOfMonth(toDate('2018-06-08')) -> 8
dayOfWeek
dayOfWeek(<value1> : datetime) => integer
Haalt de dag van de week op met een datum. 1 - zondag, 2 - maandag ..., 7 - zaterdag.
dayOfWeek(toDate('2018-06-08')) -> 6
dayOfYear
dayOfYear(<value1> : datetime) => integer
Haalt de dag van het jaar op met een datum.
dayOfYear(toDate('2016-04-09')) -> 100
days
days(<value1> : integer) => long
Duur in milliseconden voor het aantal dagen.
days(2) -> 172800000L
decode
decode(<Input> : any, <Charset> : string) => binary
Decodeert de gecodeerde invoergegevens in een tekenreeks op basis van de opgegeven tekenset. Een tweede argument (optioneel) kan worden gebruikt om op te geven welke tekenset moet worden gebruikt: 'US-ASCII', 'ISO-8859-1', 'UTF-8' (standaard), 'UTF-16BE', 'UTF-16LE', 'UTF-16'
decode(array(toByte(97),toByte(98),toByte(99)), 'US-ASCII') -> abc
degrees
degrees(<value1> : number) => double
Converteert radialen naar graden.
degrees(3.141592653589793) -> 180
denseRank
denseRank() => integer
Berekent de rangschikking van een waarde in een groep waarden die zijn opgegeven in de volgorde van een venster per component. Het resultaat is één plus het aantal rijen dat voorafgaat aan of gelijk is aan de huidige rij in de volgorde van de partitie. De waarden produceren geen hiaten in de reeks. Dense Rank werkt zelfs wanneer gegevens niet zijn gesorteerd en zoekt naar wijzigingen in waarden.
denseRank()
distinct
distinct(<value1> : array) => array
Retourneert een afzonderlijke set items uit een matrix.
distinct([10, 20, 30, 10]) => [10, 20, 30]
divide
divide(<value1> : any, <value2> : any) => any
Verdeelt paar getallen. Hetzelfde als de /
operator.
divide(20, 10) -> 2
20 / 10 -> 2
dropLeft
dropLeft(<value1> : string, <value2> : integer) => string
Hiermee verwijdert u net zoveel tekens links van de tekenreeks. Als de aangevraagde vervolgkeuzelijst groter is dan de lengte van de tekenreeks, wordt een lege tekenreeks geretourneerd.
- dropLeft('bojjus', 2) => 'jjus'
- dropLeft('cake', 10) => ''
dropRight
dropRight(<value1> : string, <value2> : integer) => string
Hiermee verwijdert u net zoveel tekens rechts van de tekenreeks. Als de aangevraagde vervolgkeuzelijst groter is dan de lengte van de tekenreeks, wordt een lege tekenreeks geretourneerd.
- dropRight('bojjus', 2) => 'bojj'
- dropRight('cake', 10) => ''
E
encode
encode(<Input> : string, <Charset> : string) => binary
Codeert de invoertekenreeksgegevens in binair op basis van een tekenset. Een tweede argument (optioneel) kan worden gebruikt om op te geven welke tekenset moet worden gebruikt: 'US-ASCII', 'ISO-8859-1', 'UTF-8' (standaard), '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
Controleert of de tekenreeks eindigt op de opgegeven tekenreeks.
endsWith('dumbo', 'mbo') -> true
equals
equals(<value1> : any, <value2> : any) => boolean
Vergelijking is gelijk aan operator. Gelijk aan == 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
Vergelijking is gelijk aan operator die hoofdlettergebruik negeert. Gelijk aan <=> operator.
'abc'<=>'Abc' -> true
equalsIgnoreCase('abc', 'Abc') -> true
escape
escape(<string_to_escape> : string, <format> : string) => string
Escapet een tekenreeks op basis van een notatie. Letterlijke waarden voor acceptabele indeling zijn 'json', 'xml', 'ecmascript', 'html', 'java'.
except
except(<value1> : array, <value2> : array) => array
Retourneert een verschilset van de ene matrix van een andere neervallende duplicaten.
except([10, 20, 30], [20, 40]) => [10, 30]
expr
expr(<expr> : string) => any
Resulteert in een expressie uit een tekenreeks. Dit is hetzelfde als het schrijven van deze expressie in een niet-literale vorm. Dit kan worden gebruikt om parameters door te geven als tekenreeksweergaven.
- expr('price * discount') => any
F
factorial
factorial(<value1> : number) => long
Berekent de faculteit van een getal.
factorial(5) -> 120
false
false() => boolean
Retourneert altijd een onwaar-waarde. Gebruik de functie syntax(false())
als er een kolom met de naam false is.
(10 + 20 > 30) -> false
(10 + 20 > 30) -> false()
filter
filter(<value1> : array, <value2> : unaryfunction) => array
Filtert elementen uit de matrix die niet voldoen aan het opgegeven predicaat. Filter verwacht een verwijzing naar één element in de predicaatfunctie 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
Zoek het eerste item uit een matrix die overeenkomt met de voorwaarde. Er wordt een filterfunctie gebruikt waar u het item in de matrix kunt adressen als #item. Voor diep geneste kaarten kunt u verwijzen naar de bovenliggende kaarten met behulp van de notatie #item_n(#item_1, #item_2...).
find([10, 20, 30], #item > 10) -> 20
find(['azure', 'data', 'factory'], length(#item) > 4) -> 'azure'
find([ @( name = 'Daniel', types = [ @(mood = 'jovial', behavior = 'terrific'), @(mood = 'grumpy', behavior = 'bad') ] ), @( name = 'Mark', types = [ @(mood = 'happy', behavior = 'awesome'), @(mood = 'calm', behavior = 'reclusive') ] ) ], contains(#item.types, #item.mood=='happy') /*Filter out the happy kid*/ )
@( name = 'Mark', types = [ @(mood = 'happy', behavior = 'awesome'), @(mood = 'calm', behavior = 'reclusive') ] )
first
first(<value1> : any, [<value2> : boolean]) => any
Hiermee haalt u de eerste waarde van een kolomgroep op. Als de tweede parameter ignoreNulls wordt weggelaten, wordt in Data Factory uitgegaan van onwaar.
first(sales)
first(sales, false)
flatten
flatten(<array> : array, <value2> : array ..., <value2> : boolean) => array
Vlakt matrices of matrices af in één matrix. Matrices van atomische items worden ongewijzigd geretourneerd. Het laatste argument is optioneel en wordt standaard ingesteld op onwaar om recursief meer dan één niveau diep te plat te maken.
flatten([['bojjus', 'girl'], ['gunchus', 'boy']]) => ['bojjus', 'girl', 'gunchus', 'boy']
flatten([[['bojjus', 'gunchus']]] , true) => ['bojjus', 'gunchus']
floor
floor(<value1> : number) => number
Retourneert het grootste gehele getal dat niet groter is dan het getal.
floor(-0.1) -> -1
fromBase64
fromBase64(<value1> : string, <encoding type> : string) => string
Decodeert de opgegeven base64-gecodeerde tekenreeks. U kunt desgewenst het coderingstype doorgeven.
fromBase64('Z3VuY2h1cw==') -> 'gunchus'
fromBase64('SGVsbG8gV29ybGQ=', 'Windows-1252') -> 'Hello World'
fromUTC
fromUTC(<value1> : timestamp, [<value2> : string]) => timestamp
Converteert naar de tijdstempel van UTC. U kunt desgewenst de tijdzone doorgeven in de vorm van GMT, PST, UTC, Amerika/Man. Deze wordt standaard ingesteld op de huidige tijdzone. Raadpleeg de klasse van SimpleDateFormat
Java voor beschikbare indelingen. 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
Vergelijking van een grotere operator. Hetzelfde als > de 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
Vergelijking groter dan of gelijk aan operator. Gelijk aan >= operator.
greaterOrEqual(12, 12) -> true
('dumbo' >= 'dum') -> true
greatest
greatest(<value1> : any, ...) => any
Retourneert de grootste waarde in de lijst met waarden als invoer die null-waarden overslaat. Retourneert null als alle invoer null is.
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
Hiermee wordt gecontroleerd op een kolomwaarde op naam in de stream. U kunt een optionele stroomnaam doorgeven als het tweede argument. Alleen adreskolomnamen die bekend zijn tijdens het ontwerp op basis van hun naam. Berekende invoer wordt niet ondersteund, maar u kunt parametervervangingen gebruiken.
hasColumn('parent')
hasError
hasError([<value1> : string]) => boolean
Controleert of de asset met de opgegeven id is gemarkeerd als fout.
Voorbeelden
hasError('assert1')
hasError('assert2')
hasPath
hasPath(<value1> : string, [<streamName> : string]) => boolean
Controleert of een bepaald hiërarchisch pad bestaat op naam in de stream. U kunt een optionele stroomnaam doorgeven als het tweede argument. Kolomnamen/paden die bekend zijn tijdens het ontwerp, moeten alleen worden geadresseerd door hun naam of puntnotatiepad. Berekende invoer wordt niet ondersteund, maar u kunt parametervervangingen gebruiken.
hasPath('grandpa.parent.child') => boolean
hex
hex(<value1>: binary) => string
Geeft als resultaat een hex-tekenreeksweergave van een binaire waarde
hex(toBinary([toByte(0x1f), toByte(0xad), toByte(0xbe)])) -> '1fadbe'
hour
hour(<value1> : timestamp, [<value2> : string]) => integer
Hiermee haalt u de uurwaarde van een tijdstempel op. U kunt een optionele tijdzone doorgeven in de vorm van 'GMT', 'PST', 'UTC', 'America/Captain'. De lokale tijdzone wordt gebruikt als de standaardinstelling. Raadpleeg de klasse van SimpleDateFormat
Java voor beschikbare indelingen. 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
Duur in milliseconden voor het aantal uren.
hours(2) -> 7200000L
I
iif
iif(<condition> : boolean, <true_expression> : any, [<false_expression> : any]) => any
Op basis van een voorwaarde wordt één waarde of de andere waarde toegepast. Als een andere waarde niet is opgegeven, wordt de waarde beschouwd als NULL. Beide waarden moeten compatibel zijn (numeriek, tekenreeks...).
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
Met twee of meer invoer wordt het eerste niet null-item geretourneerd. Deze functie is gelijk aan 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
Controleert of een item zich in de matrix bevindt.
in([10, 20, 30], 10) -> true
in(['good', 'kid'], 'bad') -> false
initCap
initCap(<value1> : string) => string
Converteert de eerste letter van elk woord naar hoofdletters. Woorden worden geïdentificeerd als gescheiden door witruimte.
initCap('cool iceCREAM') -> 'Cool Icecream'
instr
instr(<string> : string, <substring to find> : string) => integer
Hiermee zoekt u de positie (1 gebaseerd) van de subtekenreeks binnen een tekenreeks. 0 wordt geretourneerd als deze niet wordt gevonden.
instr('dumbo', 'mbo') -> 3
instr('microsoft', 'o') -> 5
instr('good', 'bad') -> 0
intersect
intersect(<value1> : array, <value2> : array) => array
Retourneert een snijpuntset met afzonderlijke items van twee matrices.
intersect([10, 20, 30], [20, 40]) => [20]
isBitSet
isBitSet (<value1> : array, <value2>:integer ) => boolean
Controleert of een bitpositie is ingesteld in deze bitset
isBitSet(toBitSet([10, 32, 98]), 10) => true
isBoolean
isBoolean(<value1>: string) => boolean
Controleert of de tekenreekswaarde een Booleaanse waarde is volgens de regels van toBoolean()
isBoolean('true') -> true
isBoolean('no') -> true
isBoolean('microsoft') -> false
isByte
isByte(<value1> : string) => boolean
Controleert of de tekenreekswaarde een bytewaarde is met een optionele notatie volgens de regels van toByte()
isByte('123') -> true
isByte('chocolate') -> false
isDate
isDate (<value1> : string, [<format>: string]) => boolean
Controleert of de tekenreeks voor invoerdatum een datum is met een optionele invoerdatumnotatie. Raadpleeg de SimpleDateFormat van Java voor beschikbare indelingen. Als de invoerdatumnotatie wordt weggelaten, is yyyy-[M]M-[d]d
de standaardindeling . Geaccepteerde indelingen zijn [ 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
Controleert of de tekenreekswaarde een decimale waarde is met een optionele notatie volgens de regels van toDecimal()
isDecimal('123.45') -> true
isDecimal('12/12/2000') -> false
isDelete
isDelete([<value1> : integer]) => boolean
Controleert of de rij is gemarkeerd voor verwijderen. Voor transformaties die meer dan één invoerstroom gebruiken, kunt u de (op 1 gebaseerde) index van de stream doorgeven. De streamindex moet 1 of 2 zijn en de standaardwaarde is 1.
isDelete()
isDelete(1)
isDistinct
isDistinct(<value1> : any , <value1> : any) => boolean
Hiermee wordt gevonden of een kolom of set kolommen uniek is. Null wordt niet geteld als een afzonderlijke waarde
isDistinct(custId, custName) => boolean
isDouble
isDouble (<value1> : string, [<format>: string]) => boolean
Controleert of de tekenreekswaarde een dubbele waarde is met een optionele notatie volgens de regels van toDouble()
isDouble('123') -> true
isDouble('$123.45' -> '$###.00') -> true
isDouble('icecream') -> false
isError
isError([<value1> : integer]) => boolean
Controleert of de rij is gemarkeerd als fout. Voor transformaties die meer dan één invoerstroom gebruiken, kunt u de (op 1 gebaseerde) index van de stream doorgeven. De streamindex moet 1 of 2 zijn en de standaardwaarde is 1.
isError()
isError(1)
isFloat
isFloat (<value1> : string, [<format>: string]) => boolean
Controleert of de tekenreekswaarde een float-waarde is met een optionele notatie volgens de regels van toFloat()
isFloat('123') -> true
isFloat('$123.45' -> '$###.00') -> true
isFloat('icecream') -> false
isIgnore
isIgnore([<value1> : integer]) => boolean
Controleert of de rij is gemarkeerd om te worden genegeerd. Voor transformaties die meer dan één invoerstroom gebruiken, kunt u de (op 1 gebaseerde) index van de stream doorgeven. De streamindex moet 1 of 2 zijn en de standaardwaarde is 1.
isIgnore()
isIgnore(1)
isInsert
isInsert([<value1> : integer]) => boolean
Controleert of de rij is gemarkeerd voor invoegen. Voor transformaties die meer dan één invoerstroom gebruiken, kunt u de (op 1 gebaseerde) index van de stream doorgeven. De streamindex moet 1 of 2 zijn en de standaardwaarde is 1.
isInsert()
isInsert(1)
isInteger
isInteger (<value1> : string, [<format>: string]) => boolean
Controleert of de tekenreekswaarde een geheel getal is met een optionele notatie volgens de regels van toInteger()
isInteger('123') -> true
isInteger('$123' -> '$###') -> true
isInteger('microsoft') -> false
isLong
isLong (<value1> : string, [<format>: string]) => boolean
Controleert of de tekenreekswaarde een lange waarde is met een optionele notatie volgens de regels van toLong()
isLong('123') -> true
isLong('$123' -> '$###') -> true
isLong('gunchus') -> false
isMatch
isMatch([<value1> : integer]) => boolean
Controleert of de rij overeenkomt met de zoekactie. Voor transformaties die meer dan één invoerstroom gebruiken, kunt u de (op 1 gebaseerde) index van de stream doorgeven. De streamindex moet 1 of 2 zijn en de standaardwaarde is 1.
isMatch()
isMatch(1)
isNan
isNan (<value1> : integral) => boolean
Controleer of dit geen getal is.
isNan(10.2) => false
isNull
isNull(<value1> : any) => boolean
Controleert of de waarde NULL is.
isNull(NULL()) -> true
isNull('') -> false
isShort
isShort (<value1> : string, [<format>: string]) => boolean
Controleert of de tekenreekswaarde een korte waarde is met een optionele notatie volgens de regels van toShort()
isShort('123') -> true
isShort('$123' -> '$###') -> true
isShort('microsoft') -> false
isTimestamp
isTimestamp (<value1> : string, [<format>: string]) => boolean
Hiermee wordt gecontroleerd of de tekenreeks voor de invoerdatum een tijdstempel is met een optionele notatie voor invoertijdstempels. Raadpleeg de SimpleDateFormat van Java voor beschikbare indelingen. Als de tijdstempel wordt weggelaten, wordt het standaardpatroon yyyy-[M]M-[d]d hh:mm:ss[.f...]
gebruikt. U kunt een optionele tijdzone doorgeven in de vorm van 'GMT', 'PST', 'UTC', 'America/Captain'. Timestamp ondersteunt een nauwkeurigheid van maximaal milliseconden met de waarde 999 Refer to Java's SimpleDateFormat for available formats.
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
Controleert of de rij is gemarkeerd voor update. Voor transformaties die meer dan één invoerstroom gebruiken, kunt u de (op 1 gebaseerde) index van de stream doorgeven. De streamindex moet 1 of 2 zijn en de standaardwaarde is 1.
isUpdate()
isUpdate(1)
isUpsert
isUpsert([<value1> : integer]) => boolean
Controleert of de rij is gemarkeerd voor invoegen. Voor transformaties die meer dan één invoerstroom gebruiken, kunt u de (op 1 gebaseerde) index van de stream doorgeven. De streamindex moet 1 of 2 zijn en de standaardwaarde is 1.
isUpsert()
isUpsert(1)
J
jaroWinkler
jaroWinkler(<value1> : string, <value2> : string) => double
Hiermee haalt u de Afstand van Jaro Listener tussen twee tekenreeksen op.
jaroWinkler('frog', 'frog') => 1.0
K
keyValues
keyValues(<value1> : array, <value2> : array) => map
Hiermee maakt u een kaart met sleutel/waarden. De eerste parameter is een matrix met sleutels en ten tweede is de matrix met waarden. Beide matrices moeten een gelijke lengte hebben.
keyValues(['bojjus', 'appa'], ['gunchus', 'ammi']) => ['bojjus' -> 'gunchus', 'appa' -> 'ammi']
kurtosis
kurtosis(<value1> : number) => double
Haalt de kurtosis van een kolom op.
kurtosis(sales)
kurtosisIf
kurtosisIf(<value1> : boolean, <value2> : number) => double
Op basis van een criterium haalt u de kurtosis van een kolom op.
kurtosisIf(region == 'West', sales)
L
lag
lag(<value> : any, [<number of rows to look before> : number], [<default value> : any]) => any
Hiermee haalt u de waarde op van de eerste parameter die n rijen vóór de huidige rij heeft geëvalueerd. De tweede parameter is het aantal rijen om terug te kijken en de standaardwaarde is 1. Als er niet zoveel rijen zijn als een waarde van null wordt geretourneerd, tenzij er een standaardwaarde is opgegeven.
lag(amount, 2)
lag(amount, 2000, 100)
last
last(<value1> : any, [<value2> : boolean]) => any
Hiermee haalt u de laatste waarde van een kolomgroep op. Als de tweede parameter ignoreNulls wordt weggelaten, wordt ervan uitgegaan dat deze onwaar is.
last(sales)
last(sales, false)
lastDayOfMonth
lastDayOfMonth(<value1> : datetime) => date
Hiermee haalt u de laatste datum op van de maand op basis van een datum.
lastDayOfMonth(toDate('2009-01-12')) -> toDate('2009-01-31')
lead
lead(<value> : any, [<number of rows to look after> : number], [<default value> : any]) => any
Hiermee haalt u de waarde op van de eerste parameter die n rijen na de huidige rij heeft geëvalueerd. De tweede parameter is het aantal rijen om vooruit te kijken en de standaardwaarde is 1. Als er niet zoveel rijen zijn als een waarde van null wordt geretourneerd, tenzij er een standaardwaarde is opgegeven.
lead(amount, 2)
lead(amount, 2000, 100)
least
least(<value1> : any, ...) => any
Vergelijking kleiner dan of gelijk aan operator. Gelijk aan <= 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
Extraheert een subtekenreeks die begint bij index 1 met het aantal tekens. Hetzelfde als SUBSTRING(str, 1, n).
left('bojjus', 2) -> 'bo'
left('bojjus', 20) -> 'bojjus'
length
length(<value1> : string) => integer
Retourneert de lengte van de tekenreeks.
length('dumbo') -> 5
lesser
lesser(<value1> : any, <value2> : any) => boolean
Vergelijking minder operator. Hetzelfde als < de 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
Vergelijking kleiner dan of gelijk aan operator. Gelijk aan <= operator.
lesserOrEqual(12, 12) -> true
('dumbo' <= 'dum') -> false
levenshtein
levenshtein(<from string> : string, <to string> : string) => integer
Hiermee haalt u de levenshtein-afstand tussen twee tekenreeksen op.
levenshtein('boys', 'girls') -> 4
like
like(<string> : string, <pattern match> : string) => boolean
Het patroon is een tekenreeks die letterlijk overeenkomt. De uitzonderingen zijn de volgende speciale symbolen: _ komt overeen met een willekeurig teken in de invoer (vergelijkbaar met. In posix
reguliere expressies komt % overeen met nul of meer tekens in de invoer (vergelijkbaar met .*
in posix
reguliere expressies).
Het escape-teken is ''. Als een escape-teken voorafgaat aan een speciaal symbool of een ander escape-teken, wordt het volgende teken letterlijk vergeleken. Het is ongeldig om een ander teken te ontsnappen.
like('icecream', 'ice%') -> true
locate
locate(<substring to find> : string, <string> : string, [<from index - 1-based> : integral]) => integer
Hiermee zoekt u de positie (1 gebaseerd) van de subtekenreeks binnen een tekenreeks die een bepaalde positie start. Als de positie wordt weggelaten, wordt deze beschouwd vanaf het begin van de tekenreeks. 0 wordt geretourneerd als deze niet wordt gevonden.
locate('mbo', 'dumbo') -> 3
locate('o', 'microsoft', 6) -> 7
locate('bad', 'good') -> 0
log
log(<value1> : number, [<value2> : number]) => double
Berekent de logboekwaarde. Een optionele basis kan anders een Euler-nummer worden opgegeven indien gebruikt.
log(100, 10) -> 2
log10
log10(<value1> : number) => double
Berekent de logboekwaarde op basis van 10 basis.
log10(100) -> 2
lookup
lookup(key, key2, ...) => complex[]
Zoekt de eerste rij van de sink in de cache op met behulp van de opgegeven sleutels die overeenkomen met de sleutels uit de sink in de cache.
cacheSink#lookup(movieId)
lower
lower(<value1> : string) => string
Hiermee wordt een tekenreeks in kleine letters weergegeven.
lower('GunChus') -> 'gunchus'
lpad
lpad(<string to pad> : string, <final padded length> : integral, <padding> : string) => string
Links vult de tekenreeks door de opgegeven opvulling totdat deze van een bepaalde lengte is. Als de tekenreeks gelijk is aan of groter is dan de lengte, wordt deze bijgesneden op de lengte.
lpad('dumbo', 10, '-') -> '-----dumbo'
lpad('dumbo', 4, '-') -> 'dumb'
ltrim
ltrim(<string to trim> : string, [<trim characters> : string]) => string
Links wordt een tekenreeks met voorlooptekens bijgesnoeid. Als de tweede parameter niet is opgegeven, wordt witruimte geknipt. Anders wordt elk teken dat is opgegeven in de tweede parameter, bijsnijden.
ltrim(' dumbo ') -> 'dumbo '
ltrim('!--!du!mbo!', '-!') -> 'du!mbo!'
M
map
map(<value1> : array, <value2> : unaryfunction) => any
Wijst elk element van de matrix toe aan een nieuw element met behulp van de opgegeven expressie. In Kaart wordt een verwijzing naar één element in de expressiefunctie verwacht 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
Transformeert een kaart door de sleutels aan nieuwe waarden te koppelen. Hiermee wordt een matrix geretourneerd. Er wordt een toewijzingsfunctie gebruikt waar u het item kunt adressen als #key en huidige waarde als #value.
mapAssociation(['bojjus' -> 'gunchus', 'appa' -> 'ammi'], @(key = #key, value = #value)) => [@(key = 'bojjus', value = 'gunchus'), @(key = 'appa', value = 'ammi')]
mapIf
mapIf (<value1> : array, <value2> : binaryfunction, <value3>: binaryFunction) => any
Hiermee wordt een matrix voorwaardelijk toegewezen aan een andere matrix van dezelfde of kleinere lengte. De waarden kunnen van elk gegevenstype zijn, inclusief structTypes. Er wordt een toewijzingsfunctie gebruikt, waarin u het item in de matrix kunt adresseren als #item en de huidige index als #index. Voor diep geneste kaarten kunt u verwijzen naar de bovenliggende kaarten met behulp van de #item_[n](#item_1, #index_1...)
notatie.
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
Wijst elk element van de matrix toe aan een nieuw element met behulp van de opgegeven expressie. Toewijzing verwacht een verwijzing naar één element in de expressiefunctie als #item en een verwijzing naar de elementindex als #index.
mapIndex([1, 2, 3, 4], #item + 2 + #index) -> [4, 6, 8, 10]
mapLoop
mapLoop(<value1> : integer, <value2> : unaryfunction) => any
Lussen van 1 tot lengte om een matrix van die lengte te maken. Er wordt een toewijzingsfunctie gebruikt waar u de index in de matrix kunt adresseren als #index. Voor diep geneste kaarten kunt u verwijzen naar de bovenliggende kaarten met behulp van de notatie #index_n(#index_1, #index_2...).
mapLoop(3, #index * 10) -> [10, 20, 30]
max
max(<value1> : any) => any
Hiermee haalt u de maximumwaarde van een kolom op.
max(sales)
maxIf
maxIf(<value1> : boolean, <value2> : any) => any
Op basis van een criterium wordt de maximumwaarde van een kolom opgehaald.
maxIf(region == 'West', sales)
md5
md5(<value1> : any, ...) => string
Berekent de MD5-samenvatting van een set kolommen met verschillende primitieve gegevenstypen en retourneert een hextekenreeks van 32 tekens. Deze kan worden gebruikt om een vingerafdruk voor een rij te berekenen.
md5(5, 'gunchus', 8.2, 'bojjus', true, toDate('2010-4-4')) -> '4ce8a880bd621a1ffad0bca905e1bc5a'
mean
mean(<value1> : number) => number
Hiermee haalt u het gemiddelde van waarden van een kolom op. Hetzelfde als AVG.
mean(sales)
meanIf
meanIf(<value1> : boolean, <value2> : number) => number
Op basis van een criterium wordt het gemiddelde van waarden van een kolom opgehaald. Hetzelfde als avgIf.
meanIf(region == 'West', sales)
millisecond
millisecond(<value1> : timestamp, [<value2> : string]) => integer
Hiermee wordt de waarde van een datum in milliseconden opgehaald. U kunt een optionele tijdzone doorgeven in de vorm van 'GMT', 'PST', 'UTC', 'America/Captain'. De lokale tijdzone wordt gebruikt als de standaardinstelling. Raadpleeg de klasse van SimpleDateFormat
Java voor beschikbare indelingen. 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
Duur in milliseconden voor het aantal milliseconden.
milliseconds(2) -> 2L
min
min(<value1> : any) => any
Hiermee haalt u de minimumwaarde van een kolom op.
min(sales)
minIf
minIf(<value1> : boolean, <value2> : any) => any
Op basis van een criterium wordt de minimumwaarde van een kolom opgehaald.
minIf(region == 'West', sales)
minus
minus(<value1> : any, <value2> : any) => any
Trekt getallen af. Het aantal dagen aftrekken van een datum. De duur van een tijdstempel aftrekken. Trek twee tijdstempels af om het verschil in milliseconden op te halen. Hetzelfde als de 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
Hiermee wordt de minuutwaarde van een tijdstempel opgehaald. U kunt een optionele tijdzone doorgeven in de vorm van 'GMT', 'PST', 'UTC', 'America/Captain'. De lokale tijdzone wordt gebruikt als de standaardinstelling. Raadpleeg de klasse van SimpleDateFormat
Java voor beschikbare indelingen. 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
Duur in milliseconden voor het aantal minuten.
minutes(2) -> 120000L
mlookup
mlookup(key, key2, ...) => complex[]
Hiermee zoekt u alle overeenkomende rijen uit de sink in de cache op met behulp van de opgegeven sleutels die overeenkomen met de sleutels uit de sink in de cache.
cacheSink#mlookup(movieId)
mod
mod(<value1> : any, <value2> : any) => any
Modulus van paar getallen. Hetzelfde als de operator %.
mod(20, 8) -> 4
20 % 8 -> 4
month
month(<value1> : datetime) => integer
Hiermee wordt de maandwaarde van een datum of tijdstempel opgehaald.
month(toDate('2012-8-8')) -> 8
monthsBetween
monthsBetween(<from date/timestamp> : datetime, <to date/timestamp> : datetime, [<roundoff> : boolean], [<time zone> : string]) => double
Hiermee haalt u het aantal maanden tussen twee datums op. U kunt de berekening afronden. U kunt een optionele tijdzone doorgeven in de vorm van 'GMT', 'PST', 'UTC', 'America/Captain'. De lokale tijdzone wordt gebruikt als de standaardinstelling. Raadpleeg de klasse van SimpleDateFormat
Java voor beschikbare indelingen. 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
Vermenigvuldigt het paar getallen. Hetzelfde als de *-operator.
multiply(20, 10) -> 200
20 * 10 -> 200
N
negate
negate(<value1> : number) => number
Onderhandelt een getal. Hiermee worden positieve getallen omgezet in negatief en omgekeerd.
negate(13) -> -13
nextSequence
nextSequence() => long
Retourneert de volgende unieke reeks. Het getal wordt alleen opeenvolgend binnen een partitie en wordt voorafgegaan door de partitionId.
nextSequence() == 12313112 -> false
normalize
normalize(<String to normalize> : string) => string
Normaliseert de tekenreekswaarde om accentige Unicode-tekens te scheiden.
regexReplace(normalize('bo²s'), `\p{M}`, '') -> 'boys'
not
not(<value1> : boolean) => boolean
Logische negatieoperator.
not(true) -> false
not(10 == 20) -> true
notEquals
notEquals(<value1> : any, <value2> : any) => boolean
Vergelijking is niet gelijk aan operator. Hetzelfde als != operator.
12 != 24 -> true
'bojjus' != 'bo' + 'jjus' -> false
nTile
nTile([<value1> : integer]) => integer
De NTile
functie verdeelt de rijen voor elke vensterpartitie in n
buckets van maximaal 1 tot maximaal n
. Bucketwaarden verschillen maximaal 1. Als het aantal rijen in de partitie niet gelijkmatig wordt verdeeld in het aantal buckets, worden de restwaarden één per bucket verdeeld, te beginnen met de eerste bucket. De NTile
functie is handig voor de berekening van tertiles
kwartielen, deciles en andere algemene samenvattingsstatistieken. De functie berekent twee variabelen tijdens de initialisatie: de grootte van een gewone bucket bevat één extra rij. Beide variabelen zijn gebaseerd op de grootte van de huidige partitie. Tijdens het berekeningsproces houdt de functie het huidige rijnummer, het huidige bucketnummer en het rijnummer bij waarop de bucket wordt gewijzigd (bucketThreshold). Wanneer het huidige rijnummer de bucketdrempel bereikt, wordt de bucketwaarde met één verhoogd en wordt de drempelwaarde verhoogd door de bucketgrootte (plus één extra als de huidige bucket is opgevuld).
nTile()
nTile(numOfBuckets)
null
null() => null
Retourneert een NULL-waarde. Gebruik de functie syntax(null())
als er een kolom met de naam null is. Elke bewerking die wordt gebruikt, resulteert in een 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
Logische OF-operator. Hetzelfde als ||.
or(true, false) -> true
true || false -> true
originColumns
originColumns(<streamName> : string) => any
Hiermee haalt u alle uitvoerkolommen op voor een oorsprongsstroom waarin kolommen zijn gemaakt. Moet worden ingesloten in een andere functie.
array(toString(originColumns('source1')))
output
output() => any
Retourneert de eerste rij van de resultaten van de cache-sink
cacheSink#output()
outputs
output() => any
Retourneert de volledige set uitvoerrijen van de resultaten van de cache-sink
cacheSink#outputs()
P
partitionId
partitionId() => integer
Retourneert de huidige partitie-id waarin de invoerrij zich bevindt.
partitionId()
pMod
pMod(<value1> : any, <value2> : any) => any
Positieve Modulus van paar getallen.
pmod(-20, 8) -> 4
power
power(<value1> : number, <value2> : number) => double
Verhoogt één getal tot de macht van een ander.
power(10, 2) -> 100
R
radians
radians(<value1> : number) => double
Converteert graden naar radialen
radians(180) => 3.141592653589793
random
random(<value1> : integral) => long
Retourneert een willekeurig getal op basis van een optioneel seed binnen een partitie. Het seed moet een vaste waarde zijn en wordt gebruikt met de partitionId om willekeurige waarden te produceren
random(1) == 1 -> false
rank
rank() => integer
Berekent de rangschikking van een waarde in een groep waarden die zijn opgegeven in de volgorde van een venster per component. Het resultaat is één plus het aantal rijen dat voorafgaat aan of gelijk is aan de huidige rij in de volgorde van de partitie. De waarden produceren hiaten in de reeks. Rangschikking werkt zelfs wanneer gegevens niet worden gesorteerd en zoekt naar wijzigingen in waarden.
rank()
reassociate
reassociate(<value1> : map, <value2> : binaryFunction) => map
Transformeert een kaart door de sleutels aan nieuwe waarden te koppelen. Er wordt een toewijzingsfunctie gebruikt waar u het item kunt adressen als #key en huidige waarde als #value.
reassociate(['fruit' -> 'apple', 'vegetable' -> 'tomato'], substring(#key, 1, 1) + substring(#value, 1, 1)) => ['fruit' -> 'fa', 'vegetable' -> 'vt']
reduce
reduce(<value1> : array, <value2> : any, <value3> : binaryfunction, <value4> : unaryfunction) => any
Verzamelt elementen in een matrix. Reduce verwacht een verwijzing naar een accumulator en één element in de eerste expressiefunctie als #acc en #item en verwacht dat de resulterende waarde als #result moet worden gebruikt in de tweede expressiefunctie.
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
Extraheer een overeenkomende subtekenreeks voor een bepaald regex-patroon. De laatste parameter identificeert de overeenkomstgroep en wordt standaard ingesteld op 1 als u dit weglaat. Gebruik <regex>
(back quote) om een tekenreeks te vinden zonder te ontsnappen. Index 0 retourneert alle overeenkomsten. Zonder overeenkomende groepen retourneert index 1 en hoger geen resultaat.
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
Controleert of de tekenreeks overeenkomt met het opgegeven regex-patroon. Gebruik <regex>
(back quote) om een tekenreeks te vinden zonder te ontsnappen.
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
Vervang alle exemplaren van een regex-patroon door een andere subtekenreeks in de opgegeven tekenreeks Use <regex>
(back quote) om een tekenreeks te vinden zonder te ontsnappen.
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
Splitst een tekenreeks op basis van een scheidingsteken op basis van regex en retourneert een matrix met tekenreeksen.
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
Vervang alle exemplaren van een subtekenreeks door een andere subtekenreeks in de opgegeven tekenreeks. Als de laatste parameter wordt weggelaten, is deze standaard ingesteld op een lege tekenreeks.
replace('doggie dog', 'dog', 'cat') -> 'catgie cat'
replace('doggie dog', 'dog', '') -> 'gie '
replace('doggie dog', 'dog') -> 'gie '
reverse
reverse(<value1> : string) => string
Retourneert een tekenreeks.
reverse('gunchus') -> 'suhcnug'
right
right(<string to subset> : string, <number of characters> : integral) => string
Extraheert een subtekenreeks met het aantal tekens aan de rechterkant. Hetzelfde als SUBSTRING(str, LENGTH(str) - n, n).
right('bojjus', 2) -> 'us'
right('bojjus', 20) -> 'bojjus'
rlike
rlike(<string> : string, <pattern match> : string) => boolean
Controleert of de tekenreeks overeenkomt met het opgegeven regex-patroon.
rlike('200.50', `(\d+).(\d+)`) -> true
rlike('bogus', `M[0-9]+.*`) -> false
round
round(<number> : number, [<scale to round> : number], [<rounding option> : integral]) => double
Rondt een getal af op basis van een optionele schaal en een optionele afrondingsmodus. Als de schaal wordt weggelaten, wordt deze standaard ingesteld op 0. Als de modus wordt weggelaten, wordt deze standaard ingesteld op ROUND_HALF_UP(5). De waarden voor afronding zijn onder meer
- ROUND_UP - Afrondingsmodus om van nul af te ronden.
- ROUND_DOWN - Afrondingsmodus om naar nul te afronden.
- ROUND_CEILING - Afrondingsmodus om naar positief oneindigheid te gaan. [Hetzelfde als ROUND_UP als invoer positief is. Als dit negatief is, gedraagt zich als ROUND_DOWN. Ex = -1,1 zou -1,0 zijn met ROUND_CEILING en -2 met ROUND_UP]
- ROUND_FLOOR - Afrondingsmodus om naar negatieve oneindigheid te gaan. [Hetzelfde als ROUND_DOWN als invoer positief is. Als dit negatief is, gedraagt zich als ROUND_UP]
- ROUND_HALF_UP - Afrondingsmodus om af te ronden naar 'dichtstbijzijnde buur' tenzij beide buren gelijk zijn, in dat geval ROUND_UP. [Meestvoorkomende + standaardwaarde voor gegevensstroom].
- ROUND_HALF_DOWN - Afrondingsmodus om af te ronden naar 'dichtstbijzijnde buur' tenzij beide buren gelijk zijn, in dat geval ROUND_DOWN.
- ROUND_HALF_EVEN - Afrondingsmodus om af te ronden naar de dichtstbijzijnde buur, tenzij beide buren gelijk zijn, in dat geval naar de even buurman.
- ROUND_UNNECESSARY - Afrondingsmodus om te bevestigen dat de rondebewerking een exact resultaat heeft, waardoor er geen afronding nodig is.
round(100.123) -> 100.0
round(2.5, 0) -> 3.0
round(5.3999999999999995, 2, 7) -> 5.40
rowNumber
rowNumber() => integer
Hiermee wordt een sequentiële rijnummering toegewezen voor rijen in een venster dat begint met 1.
rowNumber()
rpad
rpad(<string to pad> : string, <final padded length> : integral, <padding> : string) => string
Rechts vult de tekenreeks door de opgegeven opvulling totdat deze van een bepaalde lengte is. Als de tekenreeks gelijk is aan of groter is dan de lengte, wordt deze bijgesneden op de lengte.
rpad('dumbo', 10, '-') -> 'dumbo-----'
rpad('dumbo', 4, '-') -> 'dumb'
rpad('dumbo', 8, '<>') -> 'dumbo<><'
rtrim
rtrim(<string to trim> : string, [<trim characters> : string]) => string
Rechts wordt een tekenreeks met volgtekens bijsnijden. Als de tweede parameter niet is opgegeven, wordt witruimte geknipt. Anders wordt elk teken dat is opgegeven in de tweede parameter, bijsnijden.
rtrim(' dumbo ') -> ' dumbo'
rtrim('!--!du!mbo!', '-!') -> '!--!du!mbo'
S
second
second(<value1> : timestamp, [<value2> : string]) => integer
Hiermee haalt u de tweede waarde van een datum op. U kunt een optionele tijdzone doorgeven in de vorm van 'GMT', 'PST', 'UTC', 'America/Captain'. De lokale tijdzone wordt gebruikt als de standaardinstelling. Raadpleeg de klasse van SimpleDateFormat
Java voor beschikbare indelingen. 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
Duur in milliseconden voor het aantal seconden.
seconds(2) -> 2000L
setBitSet
setBitSet (<value1>: array, <value2>:array) => array
Hiermee stelt u bitposities in deze bitset in
setBitSet(toBitSet([10, 32]), [98]) => [4294968320L, 17179869184L]
sha1
sha1(<value1> : any, ...) => string
Berekent de SHA-1-samenvatting van een set kolommen met verschillende primitieve gegevenstypen en retourneert een hextekenreeks van 40 tekens. Deze kan worden gebruikt om een vingerafdruk voor een rij te berekenen.
sha1(5, 'gunchus', 8.2, 'bojjus', true, toDate('2010-4-4')) -> '46d3b478e8ec4e1f3b453ac3d8e59d5854e282bb'
sha2
sha2(<value1> : integer, <value2> : any, ...) => string
Berekent de SHA-2-samenvatting van een set kolommen met verschillende primitieve gegevenstypen op basis van een bitlengte, die alleen van waarden 0(256), 224, 256, 384, 512 kan zijn. Deze kan worden gebruikt om een vingerafdruk voor een rij te berekenen.
sha2(256, 'gunchus', 8.2, 'bojjus', true, toDate('2010-4-4')) -> 'afe8a553b1761c67d76f8c31ceef7f71b66a1ee6f4e6d3b5478bf68b47d06bd3'
sin
sin(<value1> : number) => double
Berekent een sinuswaarde.
sin(2) -> 0.9092974268256817
sinh
sinh(<value1> : number) => double
Berekent een sinuswaarde hyperbolicus.
sinh(0) -> 0.0
size
size(<value1> : any) => integer
Hiermee wordt de grootte van een matrix of kaarttype gevonden
size(['element1', 'element2']) -> 2
size([1,2,3]) -> 3
skewness
skewness(<value1> : number) => double
Hiermee haalt u de scheefheid van een kolom op.
skewness(sales)
skewnessIf
skewnessIf(<value1> : boolean, <value2> : number) => double
Op basis van een criterium haalt u de scheefheid van een kolom op.
skewnessIf(region == 'West', sales)
slice
slice(<array to slice> : array, <from 1-based index> : integral, [<number of items> : integral]) => array
Hiermee wordt een subset van een matrix uit een positie geëxtraheerd. Positie is gebaseerd op 1. Als de lengte wordt weggelaten, wordt deze standaard ingesteld op het einde van de tekenreeks.
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
Hiermee sorteert u de matrix met behulp van de opgegeven predicaatfunctie. Sorteren verwacht een verwijzing naar twee opeenvolgende elementen in de expressiefunctie als #item1 en #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
Haalt de soundex
code voor de tekenreeks op.
soundex('genius') -> 'G520'
split
split(<string to split> : string, <split characters> : string) => array
Splitst een tekenreeks op basis van een scheidingsteken en retourneert een matrix met tekenreeksen.
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
Berekent de vierkantswortel van een getal.
sqrt(9) -> 3
startsWith
startsWith(<string> : string, <substring to check> : string) => boolean
Controleert of de tekenreeks begint met de opgegeven tekenreeks.
startsWith('dumbo', 'du') -> true
stddev
stddev(<value1> : number) => double
Hiermee haalt u de standaarddeviatie van een kolom op.
stdDev(sales)
stddevIf
stddevIf(<value1> : boolean, <value2> : number) => double
Op basis van een criterium wordt de standaarddeviatie van een kolom ophaalt.
stddevIf(region == 'West', sales)
stddevPopulation
stddevPopulation(<value1> : number) => double
Hiermee haalt u de standaarddeviatie van de populatie van een kolom op.
stddevPopulation(sales)
stddevPopulationIf
stddevPopulationIf(<value1> : boolean, <value2> : number) => double
Op basis van een criterium wordt de standaarddeviatie van de populatie van een kolom ophaalt.
stddevPopulationIf(region == 'West', sales)
stddevSample
stddevSample(<value1> : number) => double
Hiermee haalt u de standaarddeviatie van de steekproef van een kolom op.
stddevSample(sales)
stddevSampleIf
stddevSampleIf(<value1> : boolean, <value2> : number) => double
Op basis van een criterium wordt de standaarddeviatie van de steekproef van een kolom ophaalt.
stddevSampleIf(region == 'West', sales)
subDays
subDays(<date/timestamp> : datetime, <days to subtract> : integral) => datetime
Dagen aftrekken van een datum of tijdstempel. Hetzelfde als de operator - voor datum.
subDays(toDate('2016-08-08'), 1) -> toDate('2016-08-07')
subMonths
subMonths(<date/timestamp> : datetime, <months to subtract> : integral) => datetime
Maanden aftrekken van een datum of tijdstempel.
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
Extraheert een subtekenreeks van een bepaalde lengte van een positie. Positie is gebaseerd op 1. Als de lengte wordt weggelaten, wordt deze standaard ingesteld op het einde van de tekenreeks.
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(<tekenreeks naar subset><delimiter>
substringIndex( : tekenreeks, tekenreeks, <aantal scheidingstekens>: integraal]) => tekenreeks
Extraheert de subtekenreeks voordat count
het scheidingsteken voorkomt. Als count
dit positief is, wordt alles links van het eindscheidingsteken (tellend van links) geretourneerd. Als count
dit negatief is, wordt alles rechts van het laatste scheidingsteken (tellend van rechts) geretourneerd.
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
Hiermee haalt u de geaggregeerde som van een numerieke kolom op.
sum(col)
sumDistinct
sumDistinct(<value1> : number) => number
Hiermee haalt u de geaggregeerde som van afzonderlijke waarden van een numerieke kolom op.
sumDistinct(col)
sumDistinctIf
sumDistinctIf(<value1> : boolean, <value2> : number) => number
Op basis van criteria wordt de geaggregeerde som van een numerieke kolom opgeteld. De voorwaarde kan worden gebaseerd op elke kolom.
sumDistinctIf(state == 'CA' && commission < 10000, sales)
sumDistinctIf(true, sales)
sumIf
sumIf(<value1> : boolean, <value2> : number) => number
Op basis van criteria wordt de geaggregeerde som van een numerieke kolom opgeteld. De voorwaarde kan worden gebaseerd op elke kolom.
sumIf(state == 'CA' && commission < 10000, sales)
sumIf(true, sales)
T
tan
tan(<value1> : number) => double
Berekent een tangenswaarde.
tan(0) -> 0.0
tanh
tanh(<value1> : number) => double
Berekent een tangenswaarde hyperbolicus.
tanh(0) -> 0.0
toBase64
toBase64(<value1> : string, <encoding type> : string]) => string
Codeert de opgegeven tekenreeks in base64. U kunt desgewenst het coderingstype doorgeven
toBase64('bojjus') -> 'Ym9qanVz'
toBase64('± 25000, € 5.000,- |', 'Windows-1252') -> 'sSAyNTAwMCwggCA1LjAwMCwtIHw='
toBinary
toBinary(<value1> : any) => binary
Converteert een numerieke/datum-/tijdstempel/tekenreeks naar binaire weergave.
toBinary(3) -> [0x11]
toBoolean
toBoolean(<value1> : string) => boolean
Converteert een waarde van ('t', 'true', 'y', 'yes', '1') naar true en ('f', 'false', 'n', 'no', '0') naar onwaar en NULL voor een andere waarde.
toBoolean('true') -> true
toBoolean('n') -> false
isNull(toBoolean('truthy')) -> true
toByte
toByte(<value> : any, [<format> : string], [<locale> : string]) => byte
Converteert een numerieke waarde of tekenreeks naar een bytewaarde. Een optionele Java-decimale notatie kan worden gebruikt voor de conversie.
toByte(123)
123
toByte(0xFF)
-1
toByte('123')
123
toDate
toDate(<string> : any, [<date format> : string]) => date
Converteert invoerdatumtekenreeks naar datum met een optionele invoerdatumnotatie. Raadpleeg de klasse van SimpleDateFormat
Java voor beschikbare indelingen. Als de invoerdatumnotatie wordt weggelaten, is de standaardindeling jjjj-[M]M-[d]d. Geaccepteerde indelingen zijn:[ yyyy, yyyy-[M]M, yyyy-[M]M-[d]d, yyyy-[M]M-[d]dT* ].
toDate('2012-8-18') -> toDate('2012-08-18')
toDate('12/18/2012', 'MM/dd/yyyy') -> toDate('2012-12-18')
toDecimal
toDecimal(<value> : any, [<precision> : integral], [<scale> : integral], [<format> : string], [<locale> : string]) => decimal(10,0)
Converteert een numerieke waarde of tekenreeks naar een decimale waarde. Als precisie en schaal niet zijn opgegeven, wordt deze standaard ingesteld op (10,2). Een optionele Java-decimale notatie kan worden gebruikt voor de conversie. Een optionele landinstelling in de vorm van BCP47-taal zoals en-US, de, zh-CN.
toDecimal(123.45) -> 123.45
toDecimal('123.45', 8, 4) -> 123.4500
toDecimal('$123.45', 8, 4,'$###.00') -> 123.4500
toDecimal('Ç123,45', 10, 2, 'Ç###,##', 'de') -> 123.45
toDouble
toDouble(<value> : any, [<format> : string], [<locale> : string]) => double
Converteert een numerieke waarde of tekenreeks naar een dubbele waarde. Een optionele Java-decimale notatie kan worden gebruikt voor de conversie. Een optionele landinstelling in de vorm van BCP47-taal zoals en-US, de, zh-CN.
toDouble(123.45) -> 123.45
toDouble('123.45') -> 123.45
toDouble('$123.45', '$###.00') -> 123.45
toDouble('Ç123,45', 'Ç###,##', 'de') -> 123.45
toFloat
toFloat(<value> : any, [<format> : string], [<locale> : string]) => float
Converteert een numerieke waarde of tekenreeks naar een float-waarde. Een optionele Java-decimale notatie kan worden gebruikt voor de conversie. Kapt elk dubbel getal af.
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
Converteert een numerieke waarde of tekenreeks naar een geheel getal. Een optionele Java-decimale notatie kan worden gebruikt voor de conversie. Kapt alle lange, zwevende, dubbele.
toInteger(123) -> 123
toInteger('123') -> 123
toInteger('$123', '$###') -> 123
toLong
toLong(<value> : any, [<format> : string], [<locale> : string]) => long
Converteert een numerieke waarde of tekenreeks naar een lange waarde. Een optionele Java-decimale notatie kan worden gebruikt voor de conversie. Kapt elke float af, dubbel.
toLong(123) -> 123
toLong('123') -> 123
toLong('$123', '$###') -> 123
topN
topN(<column/expression> : any, <count> : long, <n> : integer) => array
Hiermee haalt u de bovenste N-waarden voor deze kolom op op basis van het argument Aantal.
topN(custId, count, 5)
topN(productId, num_sales, 10)
toShort
toShort(<value> : any, [<format> : string], [<locale> : string]) => short
Converteert een numerieke waarde of tekenreeks naar een korte waarde. Een optionele Java-decimale notatie kan worden gebruikt voor de conversie. Kapt een geheel getal af, lang, zwevend, dubbel.
toShort(123) -> 123
toShort('123') -> 123
toShort('$123', '$###') -> 123
toString
toString(<value> : any, [<number format/date format> : string], [<date locale> : string]) => string
Converteert een primitief gegevenstype naar een tekenreeks. Voor getallen en datums kan een notatie worden opgegeven. Als de standaardinstelling van het systeem niet is opgegeven, wordt gekozen. De decimale java-notatie wordt gebruikt voor getallen. Raadpleeg Java SimpleDateFormat voor alle mogelijke datumnotaties; de standaardindeling is jjjj-MM-dd. Voor datum of tijdstempel kan een landinstelling optioneel worden opgegeven.
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
Converteert een tekenreeks naar een tijdstempel op basis van een optionele tijdstempelnotatie. Als de tijdstempel wordt weggelaten, wordt het standaardpatroon jjjj-[M]M-[d]d uu:mm:ss[.f...] gebruikt. U kunt een optionele tijdzone doorgeven in de vorm van 'GMT', 'PST', 'UTC', 'America/Captain'. Timestamp ondersteunt een nauwkeurigheid van maximaal milliseconden met de waarde 999. Raadpleeg de klasse van SimpleDateFormat
Java voor beschikbare indelingen. 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
Converteert de tijdstempel naar UTC. U kunt een optionele tijdzone doorgeven in de vorm van 'GMT', 'PST', 'UTC', 'America/Captain'. Deze is standaard ingesteld op de huidige tijdzone. Raadpleeg de klasse van SimpleDateFormat
Java voor beschikbare indelingen. 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
Vervang de ene set tekens door een andere set tekens in de tekenreeks. Tekens bevatten 1 tot 1 vervanging.
translate('(bojjus)', '()', '[]') -> '[bojjus]'
translate('(gunchus)', '()', '[') -> '[gunchus'
trim
trim(<string to trim> : string, [<trim characters> : string]) => string
Hiermee wordt een tekenreeks met voorloop- en volgtekens bijsnijden. Als de tweede parameter niet is opgegeven, wordt witruimte geknipt. Anders wordt elk teken dat is opgegeven in de tweede parameter, bijsnijden.
trim(' dumbo ') -> 'dumbo'
trim('!--!du!mbo!', '-!') -> 'dumbo'
true
true() => boolean
Retourneert altijd een werkelijke waarde. Gebruik de functie syntax(true())
als er een kolom met de naam true is.
(10 + 20 == 30) -> true
(10 + 20 == 30) -> true()
typeMatch
typeMatch(<type> : string, <base type> : string) => boolean
Komt overeen met het type kolom. Kan alleen worden gebruikt in patroonexpressies. Getal komt overeen met short, integer, long, double, float of decimal, integral matches short, integer, long, fractional matches double, float, decimal and datetime matches date or timestamp type.
typeMatch(type, 'number')
typeMatch('date', 'datetime')
U
unescape
unescape(<string_to_escape> : string, <format> : string) => string
Unescapes a string according to a format. Letterlijke waarden voor acceptabele indeling zijn 'json', 'xml', 'ecmascript', 'html', 'java'.
unescape('{\\\\\"value\\\\\": 10}', 'json')
'{\\\"value\\\": 10}'
unfold
unfold (<value1>: array) => any
Vouwt een matrix uit in een set rijen en herhaalt de waarden voor de resterende kolommen in elke rij.
unfold(addresses) => any
unfold( @(name = salesPerson, sales = salesAmount) ) => any
unhex
unhex(<value1>: string) => binary
Unhexes a binary value from its string representation. Dit kan worden gebruikt met sha2, md5 om te converteren van tekenreeks naar binaire weergave
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
Retourneert een samenvoegset met afzonderlijke items van 2 matrices.
union([10, 20, 30], [20, 40]) => [10, 20, 30, 40]
upper
upper(<value1> : string) => string
Hoofdletters van een tekenreeks.
upper('bojjus') -> 'BOJJUS'
uuid
uuid() => string
Retourneert de gegenereerde UUID.
uuid()
V
variance
variance(<value1> : number) => double
Hiermee haalt u de variantie van een kolom op.
variance(sales)
varianceIf
varianceIf(<value1> : boolean, <value2> : number) => double
Op basis van een criterium haalt u de variantie van een kolom op.
varianceIf(region == 'West', sales)
variancePopulation
variancePopulation(<value1> : number) => double
Hiermee haalt u de variantie van de populatie van een kolom op.
variancePopulation(sales)
variancePopulationIf
variancePopulationIf(<value1> : boolean, <value2> : number) => double
Op basis van een criterium haalt u de variantie van de populatie van een kolom op.
variancePopulationIf(region == 'West', sales)
varianceSample
varianceSample(<value1> : number) => double
Hiermee haalt u de niet-bevooruitte variantie van een kolom op.
varianceSample(sales)
varianceSampleIf
varianceSampleIf(<value1> : boolean, <value2> : number) => double
Op basis van een criterium haalt u de niet-bevooruitte variantie van een kolom op.
varianceSampleIf(region == 'West', sales)
Wo
weekOfYear
weekOfYear(<value1> : datetime) => integer
Hiermee haalt u de week van het jaar op met een datum.
weekOfYear(toDate('2008-02-20')) -> 8
weeks
weeks(<value1> : integer) => long
Duur in milliseconden voor het aantal weken.
weeks(2) -> 1209600000L
X
xor
xor(<value1> : boolean, <value2> : boolean) => boolean
Logische XOR-operator. Hetzelfde als de operator ^.
xor(true, false) -> true
xor(true, true) -> false
true ^ false -> true
J
year
year(<value1> : datetime) => integer
Hiermee wordt de jaarwaarde van een datum opgehaald.
year(toDate('2012-8-8')) -> 2012
Gerelateerde inhoud
- Lijst met alle statistische functies.
- Lijst met alle matrixfuncties.
- Lijst met alle opzoekfuncties in de cache.
- Lijst met alle conversiefuncties.
- Lijst met alle datum- en tijdfuncties.
- Lijst met alle expressiefuncties.
- Lijst met alle kaartfuncties.
- Lijst met alle metafuncties.
- Lijst met alle vensterfuncties.
- Meer informatie over het gebruik van opbouwfunctie voor expressies.