Dela via


Användning av datatransformeringsuttryck i mappning av dataflöden

GÄLLER FÖR: Azure Data Factory Azure Synapse Analytics

Dricks

Prova Data Factory i Microsoft Fabric, en allt-i-ett-analyslösning för företag. Microsoft Fabric omfattar allt från dataflytt till datavetenskap, realtidsanalys, business intelligence och rapportering. Lär dig hur du startar en ny utvärderingsversion kostnadsfritt!

Dataflöden är tillgängliga både i Azure Data Factory och Azure Synapse Pipelines. Den här artikeln gäller för mappning av dataflöden. Om du är nybörjare på transformeringar kan du läsa den inledande artikeln Transformera data med hjälp av ett mappningsdataflöde.

Följande artiklar innehåller information om användningen av alla uttryck och funktioner som stöds av Azure Data Factory och Azure Synapse Analytics i mappning av dataflöden. Sammanfattningar av varje typ av funktion som stöds finns i följande artiklar:

Alfabetisk lista över alla funktioner

Följande är en alfabetisk lista över alla funktioner som är tillgängliga i mappning av dataflöden.

A

abs

abs(<value1> : number) => number

Absolut värde för ett tal.

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

acos

acos(<value1> : number) => double

Beräknar ett inverteringsvärde för cosinéer.

  • acos(1) -> 0.0

add

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

Lägger till ett par strängar eller siffror. Lägger till ett datum i många dagar. Lägger till en varaktighet i en tidsstämpel. Lägger till en matris av liknande typ till en annan. Samma som operatorn + .

  • 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

Lägg till dagar i ett datum eller en tidsstämpel. Samma som operatorn + för datum.

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

addMonths

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

Lägg till månader i ett datum eller en tidsstämpel. Du kan också skicka en tidszon.

  • 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

Logisk AND-operator. Samma som &&.

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

approxDistinctCount

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

Hämtar det ungefärliga mängdantalet distinkta värden för en kolumn. Den valfria andra parametern är att kontrollera uppskattningsfelet.

  • approxDistinctCount(ProductID, .05) => long

array

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

Skapar en matris med objekt. Alla objekt ska vara av samma typ. Om inga objekt anges är en tom strängmatris standard. Samma som en [] skapandeoperator.

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

ascii

ascii(<Input> : string) => number

Returnerar det numeriska värdet för indatatecknet. Om indatasträngen har mer än ett tecken returneras det numeriska värdet för det första tecknet

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

asin

asin(<value1> : number) => double

Beräknar ett invertera sinusvärde.

  • asin(0) -> 0.0

assertErrorMessages

assertErrorMessages() => map

Returnerar en karta över alla felmeddelanden för raden med kontroll-ID som nyckel.

Exempel

  • 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

Skapar en karta över nyckel/värden. Alla nycklar och värden ska vara av samma typ. Om inga objekt anges används som standard en mappning av sträng till strängtyp. Samma som en [ -> ] skapandeoperator. Nycklar och värden bör växlas med varandra.

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

at

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

Söker efter elementet i ett matrisindex. Indexet är 1-baserat. Index utanför gränserna resulterar i ett null-värde. Hittar ett värde i en karta med en viss nyckel. Om nyckeln inte hittas returneras null.

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

atan

atan(<value1> : number) => double

Beräknar ett invertera tangensvärde.

  • atan(0) -> 0.0

atan2

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

Returnerar vinkeln i radianer mellan den positiva x-axeln för ett plan och den punkt som koordinaterna anger.

  • atan2(0, 0) -> 0.0

avg

avg(<value1> : number) => number

Hämtar medelvärdet av värden för en kolumn.

  • avg(sales)

avgIf

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

Baserat på ett villkor hämtar medelvärdet av värden för en kolumn.

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

F

between

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

Kontrollerar om det första värdet ligger mellan två andra värden. Numeriska värden, strängvärden och datetime-värden kan jämföras

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

bitwiseAnd

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

Bitvis och operator över integraltyper. Samma som &operatorn

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

bitwiseOr

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

Bitvis eller operator över integraltyper. Samma som | operatör

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

bitwiseXor

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

Bitvis eller operator över integraltyper. Samma som | operatör

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

blake2b

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

Beräknar Blake2-sammandraget av en uppsättning kolumner med varierande primitiva datatyper givet en bitlängd, som bara kan vara multiplar av 8 mellan 8 och 512. Den kan användas för att beräkna ett fingeravtryck för en rad

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

blake2bBinary

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

Beräknar Blake2-sammandraget av en uppsättning kolumner med varierande primitiva datatyper givet en bitlängd, som bara kan vara multiplar av 8 mellan 8 och 512. Den kan användas för att beräkna ett fingeravtryck för en rad

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

byItem

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

Hitta ett underobjekt i en struktur eller matris med struktur. Om det finns flera matchningar returneras den första matchningen. Om ingen matchning returneras ett NULL-värde. Det returnerade värdet måste vara typkonverterat av någon av typen konverteringsåtgärder (? datum, ? sträng ...). Adressera bara kolumnnamn som är kända vid designtillfället efter deras namn. Beräknade indata stöds inte, men du kan använda parameterersättningar.

  • 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

Väljer ett kolumnvärde efter namn i strömmen. Du kan skicka ett valfritt strömnamn som det andra argumentet. Om det finns flera matchningar returneras den första matchningen. Om ingen matchning returneras ett NULL-värde. Det returnerade värdet måste vara typkonverterat av någon av typkonverteringsfunktionerna (TO_DATE, TO_STRING ...). Adressera bara kolumnnamn som är kända vid designtillfället efter deras namn. Beräknade indata stöds inte, men du kan använda parameterersättningar.

  • 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

Välj en matris med kolumner efter namn i strömmen. Du kan skicka ett valfritt strömnamn som det andra argumentet. Om det finns flera matchningar returneras den första matchningen. Om det inte finns några matchningar för en kolumn är hela utdata ett NULL-värde. Det returnerade värdet kräver en typkonverteringsfunktion (toDate, toString, ...). Adressera bara kolumnnamn som är kända vid designtillfället efter deras namn. Beräknade indata stöds inte, men du kan använda parameterersättningar.

  • 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

Väljer ett kolumnvärde efter namn i ursprungsströmmen. Det andra argumentet är namnet på ursprungsströmmen. Om det finns flera matchningar returneras den första matchningen. Om ingen matchning returneras ett NULL-värde. Det returnerade värdet måste vara typkonverterat av någon av typkonverteringsfunktionerna (TO_DATE, TO_STRING ...). Adressera bara kolumnnamn som är kända vid designtillfället efter deras namn. Beräknade indata stöds inte, men du kan använda parameterersättningar.

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

byOrigins

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

Väljer en matris med kolumner efter namn i strömmen. Det andra argumentet är strömmen där den kommer från. Om det finns flera matchningar returneras den första matchningen. Om ingen matchning returneras ett NULL-värde. Det returnerade värdet måste vara typkonverterat av någon av typkonverteringsfunktionerna (TO_DATE, TO_STRING ...). Adressera bara kolumnnamn som är kända vid designtillfället efter deras namn. Beräknade indata stöds inte, men du kan använda parameterersättningar.

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

byPath

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

Söker efter en hierarkisk sökväg efter namn i strömmen. Du kan skicka ett valfritt strömnamn som det andra argumentet. Om ingen sådan sökväg hittas returneras null. Kolumnnamn/sökvägar som är kända vid designtillfället bör bara hanteras med deras namn eller punkt notationssökväg. Beräknade indata stöds inte, men du kan använda parameterersättningar.

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

byPosition

byPosition(<position> : integer) => any

Väljer ett kolumnvärde efter dess relativa position (1 baserad) i strömmen. Om positionen ligger utanför gränserna returneras ett NULL-värde. Det returnerade värdet måste vara typkonverterat av någon av typkonverteringsfunktionerna (TO_DATE, TO_STRING ...). Beräknade indata stöds inte, men du kan använda parameterersättningar.

  • toString(byPosition(1))
  • toDecimal(byPosition(2), 10, 2)
  • toBoolean(byName(4))
  • toString(byName($colName))
  • toString(byPosition(1234))

C

case

case(<condition> : boolean, <true_expression> : any, <false_expression> : any, ...) => any

Baserat på alternerande villkor gäller det ena eller det andra värdet. Om antalet indata är jämnt är det andra standardvärdet NULL för det sista villkoret.

  • 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

Beräknar kubroten för ett tal.

  • cbrt(8) -> 2.0

ceil

ceil(<value1> : number) => number

Returnerar det minsta heltalet som inte är mindre än talet.

  • ceil(-0.1) -> 0

char

char(<Input> : number) => string

Returnerar ascii-tecknet som representeras av indatanumret. Om talet är större än 256 motsvarar resultatet tecken (nummer % 256)

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

coalesce

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

Returnerar det första inte null-värdet från en uppsättning indata. Alla indata ska vara av samma typ.

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

collect

collect(<value1> : any) => array

Samlar in alla värden för uttrycket i den aggregerade gruppen till en matris. Strukturer kan samlas in och omvandlas till alternativa strukturer under den här processen. Antalet objekt är lika med antalet rader i gruppen och kan innehålla null-värden. Antalet insamlade objekt ska vara litet.

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

collectUnique

collectUnique(<value1> : any) => array

Samlar in alla värden för uttrycket i den aggregerade gruppen till en unik matris. Strukturer kan samlas in och omvandlas till alternativa strukturer under den här processen. Antalet objekt är lika med antalet rader i gruppen och kan innehålla null-värden. Antalet insamlade objekt ska vara litet.

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

columnNames

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

Hämtar namnen på alla utdatakolumner för en ström. Du kan skicka ett valfritt strömnamn som det första argumentet. Det andra argumentet är också valfritt, med false som standard. Om du anger det andra argumentet till true()returnerar Data Factory endast kolumner som har drivits via schemaavvikelse.

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

columns

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

Hämtar värdena för alla utdatakolumner för en dataström. Du kan skicka ett valfritt strömnamn som det andra argumentet.

  • columns()
  • columns('DeriveStream')

compare

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

Jämför två värden av samma typ. Returnerar negativt heltal om value1 < value2, 0 if value1 == value2, positive value if value1 > value2.

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

concat

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

Sammanfogar ett variabelt antal strängar. Samma som operatorn + med strängar.

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

concatWS

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

Sammanfogar ett variabelt antal strängar tillsammans med en avgränsare. Den första parametern är avgränsaren.

  • 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

Returnerar sant om något element i den angivna matrisen utvärderas som sant i det angivna predikatet. Contains förväntar sig en referens till ett element i predikatfunktionen som #item.

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

cos

cos(<value1> : number) => double

Beräknar ett cosinévärde.

  • cos(10) -> -0.8390715290764524

cosh

cosh(<value1> : number) => double

Beräknar en hyperbolisk cosiné för ett värde.

  • cosh(0) -> 1.0

count

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

Hämtar det aggregerade antalet värden. Om en eller flera valfria kolumner anges ignoreras NULL-värden i antalet.

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

countAll

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

Hämtar det aggregerade antalet värden, inklusive nullvärden.

  • countAll(custId)
  • countAll()

countDistinct

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

Hämtar det aggregerade antalet distinkta värden för en uppsättning kolumner.

  • countDistinct(custId, custName)

countAllDistinct

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

Hämtar det aggregerade antalet distinkta värden för en uppsättning kolumner, inklusive nullvärden.

  • countAllDistinct(custId, custName)

countIf

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

Baserat på ett villkor hämtar det aggregerade antalet värden. Om den valfria kolumnen anges ignoreras NULL-värden i antalet.

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

covariancePopulation

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

Hämtar populationens kovarians mellan två kolumner.

  • covariancePopulation(sales, profit)

covariancePopulationIf

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

Baserat på ett villkor hämtar populationens kovarians för två kolumner.

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

covarianceSample

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

Hämtar samvariansexemplet för två kolumner.

  • covarianceSample(sales, profit)

covarianceSampleIf

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

Baserat på ett villkor hämtar du samvariansexemplet för två kolumner.

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

crc32

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

Beräknar CRC32-hashen för en uppsättning kolumner med varierande primitiva datatyper givet en bitlängd, som bara kan vara av värdena 0(256), 224, 256, 384, 512. Den kan användas för att beräkna ett fingeravtryck för en rad.

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

cumeDist

cumeDist() => integer

Funktionen CumeDist beräknar positionen för ett värde i förhållande till alla värden i partitionen. Resultatet är antalet rader som föregår eller är lika med den aktuella raden i ordningen på partitionen dividerat med det totala antalet rader i fönsterpartitionen. Eventuella bindningsvärden i ordningen utvärderas till samma position.

  • cumeDist()

currentDate

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

Hämtar det aktuella datumet när jobbet börjar köras. Du kan skicka en valfri tidszon i form av "GMT", "PST", "UTC", "America/Cayman". Den lokala tidszonen för datafabrikens datacenter/region används som standard. Se Java-klassen SimpleDateFormat för tillgängliga format. 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

Hämtar den aktuella tidsstämpeln när jobbet börjar köras med den lokala tidszonen.

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

currentUTC

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

Hämtar den aktuella tidsstämpeln som UTC. Om du vill att din aktuella tid ska tolkas i en annan tidszon än klustertidszonen kan du skicka en valfri tidszon i form av "GMT", "PST", "UTC", "America/Cayman". Den är som standard den aktuella tidszonen. Se Java-klassen SimpleDateFormat för tillgängliga format. https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html. Om du vill konvertera UTC-tiden till en annan tidszon använder du 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

Hämtar dagen i månaden med ett datum.

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

dayOfWeek

dayOfWeek(<value1> : datetime) => integer

Får veckodagen angiven ett datum. 1 - Söndag, 2 - Måndag ..., 7 - Lördag.

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

dayOfYear

dayOfYear(<value1> : datetime) => integer

Får dagen på året givet ett datum.

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

days

days(<value1> : integer) => long

Varaktighet i millisekunder för antal dagar.

  • days(2) -> 172800000L

decode

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

Avkodar kodade indata till en sträng baserat på den angivna teckenuppsättningen. Ett andra (valfritt) argument kan användas för att ange vilken teckenuppsättning som ska användas – "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

Konverterar radianer till grader.

  • degrees(3.141592653589793) -> 180

denseRank

denseRank() => integer

Beräknar rangordningen för ett värde i en grupp med värden som anges i ett fönsters order by-sats. Resultatet är ett plus antalet rader som föregår eller är lika med den aktuella raden i partitionens ordning. Värdena skapar inte luckor i sekvensen. Tät rangordning fungerar även när data inte sorteras och söker efter ändringar i värden.

  • denseRank()

distinct

distinct(<value1> : array) => array

Returnerar en distinkt uppsättning objekt från en matris.

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

divide

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

Delar upp par med tal. Samma som operatorn / .

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

dropLeft

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

Tar bort så många tecken som finns till vänster om strängen. Om den begärda droppen överskrider strängens längd returneras en tom sträng.

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

dropRight

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

Tar bort så många tecken från höger om strängen. Om den begärda droppen överskrider strängens längd returneras en tom sträng.

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

E

encode

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

Kodar indatasträngsdata till binär baserat på en teckenuppsättning. Ett andra (valfritt) argument kan användas för att ange vilken teckenuppsättning som ska användas – "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

Kontrollerar om strängen slutar med den angivna strängen.

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

equals

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

Jämförelse är lika med operatorn. Samma som == 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

Jämförelse är lika med operatorn som ignorerar skiftläge. Samma som <=> operator.

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

escape

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

Undflyr en sträng enligt ett format. Literalvärden för acceptabelt format är "json", "xml", "ecmascript", "html", "java".


except

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

Returnerar en skillnadsuppsättning för en matris från en annan som släpper dubbletter.

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

expr

expr(<expr> : string) => any

Resulterar i ett uttryck från en sträng. Detta är samma sak som att skriva det här uttrycket i ett icke-belyst format. Detta kan användas för att skicka parametrar som strängrepresentationer.

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

F

factorial

factorial(<value1> : number) => long

Beräknar faktoriellt för ett tal.

  • factorial(5) -> 120

false

false() => boolean

Returnerar alltid ett falskt värde. Använd funktionen syntax(false()) om det finns en kolumn med namnet "false".

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

filter

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

Filtrerar bort element från matrisen som inte uppfyller det angivna predikatet. Filter förväntar sig en referens till ett element i predikatfunktionen som #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

Hitta det första objektet från en matris som matchar villkoret. Det tar en filterfunktion där du kan adressera objektet i matrisen som #item. För djupt kapslade kartor kan du referera till de överordnade kartorna med notationen #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

Hämtar det första värdet för en kolumngrupp. Om den andra parametern ignoreNulls utelämnas förutsätter Data Factory falskt.

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

flatten

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

Jämnar ut matriser eller matriser till en enda matris. Matriser med atomiska objekt returneras oförändrade. Det sista argumentet är valfritt och är standardvärdet false för att platta ut rekursivt mer än en nivå djup.

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

floor

floor(<value1> : number) => number

Returnerar det största heltalet som inte är större än talet.

  • floor(-0.1) -> -1

fromBase64

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

Avkodar den angivna base64-kodade strängen. Du kan också skicka kodningstypen.

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

fromUTC

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

Konverterar till tidsstämpeln från UTC. Du kan också skicka tidszonen i form av "GMT", "PST", "UTC", "America/Cayman". Den är som standard den aktuella tidszonen. Se Java-klassen SimpleDateFormat för tillgängliga format. 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

Jämförelse större operator. Samma som > operatorn.

  • 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

Jämförelse större än eller lika med operator. Samma som >= operator.

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

greatest

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

Returnerar det största värdet i listan med värden som indata som hoppar över null-värden. Returnerar null om alla indata är null.

  • greatest(10, 30, 15, 20) -> 30
  • greatest(10, toInteger(null), 20) -> 20
  • greatest(toDate('2010-12-12'), toDate('2011-12-12'), toDate('2000-12-12')) -> toDate('2011-12-12')
  • greatest(toTimestamp('2019-02-03 05:19:28.871', 'yyyy-MM-dd HH:mm:ss.SSS'), toTimestamp('2019-02-05 08:21:34.890', 'yyyy-MM-dd HH:mm:ss.SSS')) -> toTimestamp('2019-02-05 08:21:34.890', 'yyyy-MM-dd HH:mm:ss.SSS')

H

hasColumn

hasColumn(<column name> : string, [<stream name> : string]) => boolean

Söker efter ett kolumnvärde efter namn i strömmen. Du kan skicka ett valfritt strömnamn som det andra argumentet. Adressera bara kolumnnamn som är kända vid designtillfället efter deras namn. Beräknade indata stöds inte, men du kan använda parameterersättningar.

  • hasColumn('parent')

hasError

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

Kontrollerar om tillgången med angivet ID har markerats som fel.

Exempel

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

hasPath

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

Kontrollerar om det finns en viss hierarkisk sökväg efter namn i strömmen. Du kan skicka ett valfritt strömnamn som det andra argumentet. Kolumnnamn/sökvägar som är kända vid designtillfället bör bara hanteras med deras namn eller punkt notationssökväg. Beräknade indata stöds inte, men du kan använda parameterersättningar.

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

hex

hex(<value1>: binary) => string

Returnerar en hexsträngsrepresentation av ett binärt värde

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

hour

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

Hämtar timvärdet för en tidsstämpel. Du kan skicka en valfri tidszon i form av "GMT", "PST", "UTC", "America/Cayman". Den lokala tidszonen används som standard. Se Java-klassen SimpleDateFormat för tillgängliga format. 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

Varaktighet i millisekunder för antal timmar.

  • hours(2) -> 7200000L

I

iif

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

Baserat på ett villkor gäller det ena eller det andra värdet. Om andra är ospecificerade betraktas värdet som NULL. Båda värdena måste vara kompatibla (numeriska, sträng...).

  • 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

Givet två eller flera indata returnerar det första inte null-objektet. Den här funktionen motsvarar sammansmältning.

  • 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

Kontrollerar om ett objekt finns i matrisen.

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

initCap

initCap(<value1> : string) => string

Konverterar den första bokstaven i varje ord till versaler. Ord identifieras som avgränsade med blanksteg.

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

instr

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

Söker efter positionen (1 baserad) för delsträngen i en sträng. 0 returneras om det inte hittas.

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

intersect

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

Returnerar en skärningspunktsuppsättning med distinkta objekt från två matriser.

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

isBitSet

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

Kontrollerar om en bitposition har angetts i den här bituppsättningen

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

isBoolean

isBoolean(<value1>: string) => boolean

Kontrollerar om strängvärdet är ett booleskt värde enligt reglerna för toBoolean()

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

isByte

isByte(<value1> : string) => boolean

Kontrollerar om strängvärdet är ett bytevärde med ett valfritt format enligt reglerna för toByte()

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

isDate

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

Kontrollerar om indatadatumsträngen är ett datum med ett valfritt indatadatumformat. Se Javas SimpleDateFormat för tillgängliga format. Om indatadatumformatet utelämnas är yyyy-[M]M-[d]dstandardformatet . Godkända format är [ 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

Kontrollerar om strängvärdet är ett decimalvärde med ett valfritt format enligt reglerna för toDecimal()

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

isDelete

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

Kontrollerar om raden har markerats för borttagning. För omvandlingar som tar mer än en indataström kan du skicka dataströmmens (1-baserade) index. Dataströmindexet ska vara antingen 1 eller 2 och standardvärdet är 1.

  • isDelete()
  • isDelete(1)

isDistinct

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

Söker efter om en kolumn eller uppsättning kolumner är distinkt. Den räknar inte null som ett distinkt värde

  • isDistinct(custId, custName) => boolean

isDouble

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

Kontrollerar om strängvärdet är ett dubbelt värde med ett valfritt format enligt reglerna för toDouble()

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

isError

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

Kontrollerar om raden har markerats som ett fel. För omvandlingar som tar mer än en indataström kan du skicka dataströmmens (1-baserade) index. Dataströmindexet ska vara antingen 1 eller 2 och standardvärdet är 1.

  • isError()
  • isError(1)

isFloat

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

Kontrollerar om strängvärdet är ett flyttalvärde med ett valfritt format enligt reglerna för toFloat()

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

isIgnore

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

Kontrollerar om raden är markerad som ignorerad. För omvandlingar som tar mer än en indataström kan du skicka dataströmmens (1-baserade) index. Dataströmindexet ska vara antingen 1 eller 2 och standardvärdet är 1.

  • isIgnore()
  • isIgnore(1)

isInsert

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

Kontrollerar om raden är markerad som infogad. För omvandlingar som tar mer än en indataström kan du skicka dataströmmens (1-baserade) index. Dataströmindexet ska vara antingen 1 eller 2 och standardvärdet är 1.

  • isInsert()
  • isInsert(1)

isInteger

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

Kontrollerar om strängvärdet är ett heltalsvärde med ett valfritt format enligt reglerna för toInteger()

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

isLong

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

Kontrollerar om strängvärdet är ett långt värde med ett valfritt format enligt reglerna för toLong()

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

isMatch

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

Kontrollerar om raden matchas vid uppslag. För omvandlingar som tar mer än en indataström kan du skicka dataströmmens (1-baserade) index. Dataströmindexet ska vara antingen 1 eller 2 och standardvärdet är 1.

  • isMatch()
  • isMatch(1)

isNan

isNan (<value1> : integral) => boolean

Kontrollera om det här inte är ett tal.

  • isNan(10.2) => false

isNull

isNull(<value1> : any) => boolean

Kontrollerar om värdet är NULL.

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

isShort

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

Kontrollerar om strängvärdet är ett kort värde med ett valfritt format enligt reglerna för toShort()

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

isTimestamp

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

Kontrollerar om indatadatumsträngen är en tidsstämpel med ett valfritt tidsstämpelformat för indata. Se Javas SimpleDateFormat för tillgängliga format. Om tidsstämpeln utelämnas används standardmönstret yyyy-[M]M-[d]d hh:mm:ss[.f...] . Du kan skicka en valfri tidszon i form av "GMT", "PST", "UTC", "America/Cayman". Tidsstämpeln stöder upp till millisekunders noggrannhet med värdet 999 Referera till Javas SimpleDateFormat för tillgängliga format.

  • 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

Kontrollerar om raden har markerats för uppdatering. För omvandlingar som tar mer än en indataström kan du skicka dataströmmens (1-baserade) index. Dataströmindexet ska vara antingen 1 eller 2 och standardvärdet är 1.

  • isUpdate()
  • isUpdate(1)

isUpsert

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

Kontrollerar om raden är markerad som infogad. För omvandlingar som tar mer än en indataström kan du skicka dataströmmens (1-baserade) index. Dataströmindexet ska vara antingen 1 eller 2 och standardvärdet är 1.

  • isUpsert()
  • isUpsert(1)

J

jaroWinkler

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

Hämtar JaroWinkler-avståndet mellan två strängar.

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

k

keyValues

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

Skapar en karta över nyckel/värden. Den första parametern är en matris med nycklar och den andra är matrisen med värden. Båda matriserna ska ha samma längd.

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

kurtosis

kurtosis(<value1> : number) => double

Hämtar en kolumns kurtos.

  • kurtosis(sales)

kurtosisIf

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

Baserat på ett kriterium får du en kolumns kurtos.

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

L

lag

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

Hämtar värdet för den första parametern som utvärderas n rader före den aktuella raden. Den andra parametern är antalet rader som ska se tillbaka och standardvärdet är 1. Om det inte finns lika många rader returneras värdet null om inte ett standardvärde anges.

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

last

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

Hämtar det sista värdet för en kolumngrupp. Om den andra parametern ignoreNulls utelämnas antas den vara false.

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

lastDayOfMonth

lastDayOfMonth(<value1> : datetime) => date

Hämtar det sista datumet i månaden med ett 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

Hämtar värdet för den första parametern som utvärderas n rader efter den aktuella raden. Den andra parametern är antalet rader som ska se framåt och standardvärdet är 1. Om det inte finns lika många rader returneras värdet null om inte ett standardvärde anges.

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

least

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

Jämförelse mindre än eller lika med operator. Samma som <= 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

Extraherar en delsträng som börjar vid index 1 med antal tecken. Samma som SUBSTRING(str, 1, n).

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

length

length(<value1> : string) => integer

Returnerar strängens längd.

  • length('dumbo') -> 5

lesser

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

Jämförelse mindre operator. Samma som < operatorn.

  • 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

Jämförelse mindre än eller lika med operator. Samma som <= operator.

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

levenshtein

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

Hämtar levenshtein-avståndet mellan två strängar.

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

like

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

Mönstret är en sträng som matchas bokstavligen. Undantagen är följande specialsymboler: _ matchar ett tecken i indata (liknar det. I posix reguljära uttryck) matchar % noll eller fler tecken i indata (ungefär .* som i posix reguljära uttryck). Escape-tecknet är ''. Om ett escape-tecken föregår en särskild symbol eller ett annat escape-tecken matchas följande tecken bokstavligen. Det är ogiltigt att undvika andra tecken.

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

locate

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

Hittar positionen (1 baserad) för delsträngen i en sträng som startar en viss position. Om positionen utelämnas beaktas den från början av strängen. 0 returneras om det inte hittas.

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

log

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

Beräknar loggvärdet. En valfri bas kan anges annars ett Euler-nummer om det används.

  • log(100, 10) -> 2

log10

log10(<value1> : number) => double

Beräknar loggvärdet baserat på 10 bas.

  • log10(100) -> 2

lookup

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

Söker upp den första raden från den cachelagrade mottagaren med de angivna nycklarna som matchar nycklarna från den cachelagrade mottagaren.

  • cacheSink#lookup(movieId)

lower

lower(<value1> : string) => string

Gement en sträng.

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

lpad

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

Vänster pads strängen av den medföljande utfyllnad tills det är av en viss längd. Om strängen är lika med eller större än längden trimmas den till längden.

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

ltrim

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

Till vänster trimmas en sträng med inledande tecken. Om den andra parametern är ospecificerad trimmas tomt utrymme. Annars trimmas alla tecken som anges i den andra parametern.

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

M

map

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

Mappar varje element i matrisen till ett nytt element med det angivna uttrycket. Map förväntar sig en referens till ett element i uttrycksfunktionen som #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

Transformerar en karta genom att koppla nycklarna till nya värden. Returnerar en matris. Det tar en mappningsfunktion där du kan adressera objektet som #key och aktuellt värde som #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

Villkorligt mappar en matris till en annan matris med samma eller mindre längd. Värdena kan vara av valfri datatyp, inklusive structTypes. Det tar en mappningsfunktion där du kan adressera objektet i matrisen som #item och aktuellt index som #index. För djupt kapslade kartor kan du referera till de överordnade kartorna med hjälp av notationen #item_[n](#item_1, #index_1...) .

  • mapIf([10, 20, 30], #item > 10, #item + 5) -> [25, 35]
  • mapIf(['icecream', 'cake', 'soda'], length(#item) > 4, upper(#item)) -> ['ICECREAM', 'CAKE']

mapIndex

mapIndex(<value1> : array, <value2> : binaryfunction) => any

Mappar varje element i matrisen till ett nytt element med det angivna uttrycket. Map förväntar sig en referens till ett element i uttrycksfunktionen som #item och en referens till elementindexet som #index.

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

mapLoop

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

Loopar igenom från 1 till längd för att skapa en matris med den längden. Det tar en mappningsfunktion där du kan adressera indexet i matrisen som #index. För djupt kapslade kartor kan du referera till de överordnade kartorna med notationen #index_n(#index_1, #index_2...).

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

max

max(<value1> : any) => any

Hämtar det maximala värdet för en kolumn.

  • max(sales)

maxIf

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

Baserat på ett villkor får du det maximala värdet för en kolumn.

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

md5

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

Beräknar MD5-sammandraget av en uppsättning kolumner med varierande primitiva datatyper och returnerar en hexsträng med 32 tecken. Den kan användas för att beräkna ett fingeravtryck för en rad.

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

mean

mean(<value1> : number) => number

Hämtar medelvärdet av värden för en kolumn. Samma som AVG.

  • mean(sales)

meanIf

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

Baserat på ett villkor hämtar medelvärdet av värden för en kolumn. Samma som avgIf.

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

millisecond

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

Hämtar millisekundersvärdet för ett datum. Du kan skicka en valfri tidszon i form av "GMT", "PST", "UTC", "America/Cayman". Den lokala tidszonen används som standard. Se Java-klassen SimpleDateFormat för tillgängliga format. 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

Varaktighet i millisekunder för antal millisekunder.

  • milliseconds(2) -> 2L

min

min(<value1> : any) => any

Hämtar minimivärdet för en kolumn.

  • min(sales)

minIf

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

Baserat på ett villkor får du minimivärdet för en kolumn.

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

minus

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

Subtraherar tal. Subtrahera antalet dagar från ett datum. Subtrahera varaktighet från en tidsstämpel. Subtrahera två tidsstämplar för att få skillnad i millisekunder. Samma som operatorn - .

  • 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

Hämtar minutvärdet för en tidsstämpel. Du kan skicka en valfri tidszon i form av "GMT", "PST", "UTC", "America/Cayman". Den lokala tidszonen används som standard. Se Java-klassen SimpleDateFormat för tillgängliga format. 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

Varaktighet i millisekunder för antal minuter.

  • minutes(2) -> 120000L

mlookup

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

Letar upp alla matchande rader från den cachelagrade mottagaren med de angivna nycklarna som matchar nycklarna från den cachelagrade mottagaren.

  • cacheSink#mlookup(movieId)

mod

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

Modulus för par med tal. Samma som operatorn % .

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

month

month(<value1> : datetime) => integer

Hämtar månadsvärdet för ett datum eller en tidsstämpel.

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

monthsBetween

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

Hämtar antalet månader mellan två datum. Du kan avrunda beräkningen. Du kan skicka en valfri tidszon i form av "GMT", "PST", "UTC", "America/Cayman". Den lokala tidszonen används som standard. Se Java-klassen SimpleDateFormat för tillgängliga format. 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

Multiplicerar par med tal. Samma som *-operatorn.

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

N

negate

negate(<value1> : number) => number

Negerar ett tal. Vänder positiva tal till negativa och vice versa.

  • negate(13) -> -13

nextSequence

nextSequence() => long

Returnerar nästa unika sekvens. Talet är bara i följd inom en partition och prefixet är partitionId.

  • nextSequence() == 12313112 -> false

normalize

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

Normaliserar strängvärdet till separata unicode-accenttecken.

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

not

not(<value1> : boolean) => boolean

Logisk negationsoperator.

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

notEquals

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

Jämförelse är inte lika med operatorn. Samma som != operator.

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

nTile

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

Funktionen NTile delar upp raderna för varje fönsterpartition i n bucketar från 1 till högst n. Bucketvärdena skiljer sig med högst 1. Om antalet rader i partitionen inte delas upp jämnt i antalet bucketar distribueras restvärdena en per bucket, från och med den första bucketen. Funktionen NTile är användbar för beräkningen av tertiles, kvarttiler, deciler och annan gemensam sammanfattningsstatistik. Funktionen beräknar två variabler under initieringen: Storleken på en vanlig bucket har en extra rad tillagd. Båda variablerna baseras på storleken på den aktuella partitionen. Under beräkningsprocessen håller funktionen reda på det aktuella radnumret, det aktuella bucketnumret och radnumret som bucketen kommer att ändras med (bucketThreshold). När det aktuella radnumret når buckettröskelvärdet ökas bucketvärdet med ett och tröskelvärdet ökas med bucketstorleken (plus en extra om den aktuella bucketen är vadderad).

  • nTile()
  • nTile(numOfBuckets)

null

null() => null

Returnerar ett NULL-värde. Använd funktionen syntax(null()) om det finns en kolumn med namnet "null". Alla åtgärder som används resulterar i en 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

Logisk OR-operator. Samma som ||.

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

originColumns

originColumns(<streamName> : string) => any

Hämtar alla utdatakolumner för en ursprungsström där kolumner skapades. Måste omges av en annan funktion.

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

output

output() => any

Returnerar den första raden i resultatet av cachemottagaren

  • cacheSink#output()

outputs

output() => any

Returnerar hela utdataraduppsättningen för resultatet av cachemottagaren

  • cacheSink#outputs()

P

partitionId

partitionId() => integer

Returnerar det aktuella partitions-ID som indataraden finns i.

  • partitionId()

pMod

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

Positiv modulus för par med tal.

  • pmod(-20, 8) -> 4

power

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

Höjer ett tal till kraften hos en annan.

  • power(10, 2) -> 100

R

radians

radians(<value1> : number) => double

Konverterar grader till radianer

  • radians(180) => 3.141592653589793

random

random(<value1> : integral) => long

Returnerar ett slumpmässigt tal givet ett valfritt startvärde i en partition. Fröet ska vara ett fast värde och används med partitionId för att generera slumpmässiga värden

  • random(1) == 1 -> false

rank

rank() => integer

Beräknar rangordningen för ett värde i en grupp med värden som anges i ett fönsters order by-sats. Resultatet är ett plus antalet rader som föregår eller är lika med den aktuella raden i partitionens ordning. Värdena skapar luckor i sekvensen. Rangordning fungerar även när data inte sorteras och söker efter ändringar i värden.

  • rank()

reassociate

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

Transformerar en karta genom att koppla nycklarna till nya värden. Det tar en mappningsfunktion där du kan adressera objektet som #key och aktuellt värde som #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

Ackumulerar element i en matris. Reduce förväntar sig en referens till en ackumulator och ett element i den första uttrycksfunktionen som #acc och #item och förväntar sig att det resulterande värdet som #result ska användas i den andra uttrycksfunktionen.

  • 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

Extrahera en matchande delsträng för ett givet regex-mönster. Den sista parametern identifierar matchningsgruppen och är standardvärdet 1 om den utelämnas. Använd <regex>(citattecken) för att matcha en sträng utan att komma undan. Index 0 returnerar alla matchningar. Utan matchningsgrupper returnerar index 1 och senare inte något resultat.

  • 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

Kontrollerar om strängen matchar det angivna regexmönstret. Använd <regex>(citattecken) för att matcha en sträng utan att komma undan.

  • 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

Ersätt alla förekomster av ett regex-mönster med en annan delsträng i den angivna strängen Använd <regex>(citattecken) för att matcha en sträng utan att fly.

  • 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

Delar upp en sträng baserat på en avgränsare baserat på regex och returnerar en matris med strängar.

  • 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

Ersätt alla förekomster av en delsträng med en annan delsträng i den angivna strängen. Om den sista parametern utelämnas är den som standard tom sträng.

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

reverse

reverse(<value1> : string) => string

Omvänt en sträng.

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

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

Extraherar en delsträng med antal tecken från höger. Samma som SUBSTRING(str, LENGTH(str) - n, n).

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

rlike

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

Kontrollerar om strängen matchar det angivna regexmönstret.

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

round

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

Avrundar ett tal med en valfri skala och ett valfritt avrundningsläge. Om skalan utelämnas är den standardvärdet 0. Om läget utelämnas är standardinställningen ROUND_HALF_UP(5). Värdena för avrundning inkluderar

  1. ROUND_UP – Avrundningsläge för avrundning från noll.
  2. ROUND_DOWN – Avrundningsläge för avrundning mot noll.
  3. ROUND_CEILING – Avrundningsläge för avrundning mot positiv oändlighet. [Samma som ROUND_UP om indata är positiva. Om det är negativt fungerar det som ROUND_DOWN. Ex = -1.1 skulle vara -1,0 med ROUND_CEILING och -2 med ROUND_UP]
  4. ROUND_FLOOR – Avrundningsläge för avrundning mot negativ oändlighet. [Samma som ROUND_DOWN om indata är positiva. Om det är negativt fungerar det som ROUND_UP]
  5. ROUND_HALF_UP – Avrundningsläge för avrundning mot "närmaste granne" om inte båda grannarna är likvärdiga, i vilket fall ROUND_UP. [Vanligast + standard för Dataflöde].
  6. ROUND_HALF_DOWN – Avrundningsläge för avrundning mot "närmaste granne" om inte båda grannarna är likvärdiga, i vilket fall ROUND_DOWN.
  7. ROUND_HALF_EVEN – Avrundningsläge för avrundning mot "närmaste granne" om inte båda grannarna är likvärdiga, i vilket fall, avrundar mot den jämna grannen.
  8. ROUND_UNNECESSARY – Avrundningsläge för att bekräfta att avrundningsåtgärden har ett exakt resultat, vilket innebär att ingen avrundning krävs.
  • round(100.123) -> 100.0
  • round(2.5, 0) -> 3.0
  • round(5.3999999999999995, 2, 7) -> 5.40

rowNumber

rowNumber() => integer

Tilldelar en sekventiell radnumrering för rader i ett fönster som börjar med 1.

  • rowNumber()

rpad

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

Höger fyller strängen med den medföljande utfyllnaden tills den är av en viss längd. Om strängen är lika med eller större än längden trimmas den till längden.

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

rtrim

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

Höger trimmar en sträng med avslutande tecken. Om den andra parametern är ospecificerad trimmas tomt utrymme. Annars trimmas alla tecken som anges i den andra parametern.

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

S

second

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

Hämtar det andra värdet för ett datum. Du kan skicka en valfri tidszon i form av "GMT", "PST", "UTC", "America/Cayman". Den lokala tidszonen används som standard. Se Java-klassen SimpleDateFormat för tillgängliga format. 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

Varaktighet i millisekunder under antal sekunder.

  • seconds(2) -> 2000L

setBitSet

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

Anger bitpositioner i den här bituppsättningen

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

sha1

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

Beräknar SHA-1-sammandraget av en uppsättning kolumner med varierande primitiva datatyper och returnerar en hexsträng med 40 tecken. Den kan användas för att beräkna ett fingeravtryck för en rad.

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

sha2

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

Beräknar SHA-2-sammandraget av en uppsättning kolumner med varierande primitiva datatyper givet en bitlängd, som bara kan vara av värdena 0(256), 224, 256, 384, 512. Den kan användas för att beräkna ett fingeravtryck för en rad.

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

sin

sin(<value1> : number) => double

Beräknar ett sinusvärde.

  • sin(2) -> 0.9092974268256817

sinh

sinh(<value1> : number) => double

Beräknar ett hyperboliskt sinusvärde.

  • sinh(0) -> 0.0

size

size(<value1> : any) => integer

Söker efter storleken på en matris eller karttyp

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

skewness

skewness(<value1> : number) => double

Hämtar snedheten i en kolumn.

  • skewness(sales)

skewnessIf

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

Baserat på ett villkor hämtar skevheten i en kolumn.

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

slice

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

Extraherar en delmängd av en matris från en position. Position är 1 baserad. Om längden utelämnas är den standard för slutet av strängen.

  • 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

Sorterar matrisen med hjälp av den angivna predikatfunktionen. Sort förväntar sig en referens till två på varandra följande element i uttrycksfunktionen som #item1 och #item2.

  • sort([4, 8, 2, 3], compare(#item1, #item2)) -> [2, 3, 4, 8]
  • sort(['a3', 'b2', 'c1'], iif(right(#item1, 1) >= right(#item2, 1), 1, -1)) -> ['c1', 'b2', 'a3']

soundex

soundex(<value1> : string) => string

soundex Hämtar koden för strängen.

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

split

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

Delar upp en sträng baserat på en avgränsare och returnerar en matris med strängar.

  • 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

Beräknar kvadratroten för ett tal.

  • sqrt(9) -> 3

startsWith

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

Kontrollerar om strängen börjar med den angivna strängen.

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

stddev

stddev(<value1> : number) => double

Hämtar standardavvikelsen för en kolumn.

  • stdDev(sales)

stddevIf

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

Baserat på ett villkor hämtar standardavvikelsen för en kolumn.

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

stddevPopulation

stddevPopulation(<value1> : number) => double

Hämtar populationens standardavvikelse för en kolumn.

  • stddevPopulation(sales)

stddevPopulationIf

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

Baserat på ett villkor hämtar populationens standardavvikelse för en kolumn.

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

stddevSample

stddevSample(<value1> : number) => double

Hämtar exempelstandardavvikelsen för en kolumn.

  • stddevSample(sales)

stddevSampleIf

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

Baserat på ett villkor hämtar exempelstandardavvikelsen för en kolumn.

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

subDays

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

Subtrahera dagar från ett datum eller en tidsstämpel. Samma som operatorn - för datum.

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

subMonths

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

Subtrahera månader från ett datum eller en tidsstämpel.

  • 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

Extraherar en delsträng av en viss längd från en position. Position är 1 baserad. Om längden utelämnas är den standard för slutet av strängen.

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

Extraherar delsträngen före count förekomster av avgränsare. Om count är positivt returneras allt till vänster om den slutliga avgränsare (räknar från vänster). Om count är negativt returneras allt till höger om den slutliga avgränsare (räknar från höger).

  • 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

Hämtar den sammanlagda summan av en numerisk kolumn.

  • sum(col)

sumDistinct

sumDistinct(<value1> : number) => number

Hämtar den aggregerade summan av distinkta värden för en numerisk kolumn.

  • sumDistinct(col)

sumDistinctIf

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

Baserat på kriterier hämtar den aggregerade summan av en numerisk kolumn. Villkoret kan baseras på valfri kolumn.

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

sumIf

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

Baserat på kriterier hämtar den aggregerade summan av en numerisk kolumn. Villkoret kan baseras på valfri kolumn.

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

T

tan

tan(<value1> : number) => double

Beräknar ett tangensvärde.

  • tan(0) -> 0.0

tanh

tanh(<value1> : number) => double

Beräknar ett hyperboliskt tangensvärde.

  • tanh(0) -> 0.0

toBase64

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

Kodar den angivna strängen i base64. Du kan också skicka kodningstypen

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

toBinary

toBinary(<value1> : any) => binary

Konverterar valfritt numeriskt/datum/tidsstämpel/sträng till binär representation.

  • toBinary(3) -> [0x11]

toBoolean

toBoolean(<value1> : string) => boolean

Konverterar värdet ('t', 'true', 'y', 'yes', '1') till true och ('f', 'false', 'n', 'no', '0') till false och NULL för andra värden.

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

toByte

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

Konverterar valfritt numeriskt värde eller en sträng till ett bytevärde. Ett valfritt Java-decimalformat kan användas för konverteringen.

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

toDate

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

Konverterar indatadatumsträng till datum med ett valfritt indatadatumformat. Se Java-klassen SimpleDateFormat för tillgängliga format. Om indatadatumformatet utelämnas är standardformatet åååå-[M]M-[d]d. Accepterade format är :[ åååå, å-[M]M, åååå-[M]M-[d]d, åååå-[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)

Konverterar valfritt numeriskt värde eller en sträng till ett decimalvärde. Om precision och skalning inte anges är standardvärdet (10,2). Ett valfritt Java-decimalformat kan användas för konverteringen. Ett valfritt språkformat i form av BCP47-språk som 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

Konverterar valfritt numeriskt värde eller en sträng till ett dubbelt värde. Ett valfritt Java-decimalformat kan användas för konverteringen. Ett valfritt språkformat i form av BCP47-språk som 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

Konverterar numeriska värden eller strängar till ett flyttalsvärde. Ett valfritt Java-decimalformat kan användas för konverteringen. Trunkerar en dubbel.

  • 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

Konverterar valfritt numeriskt värde eller en sträng till ett heltalsvärde. Ett valfritt Java-decimalformat kan användas för konverteringen. Trunkerar alla långa, flytande, dubbla.

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

toLong

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

Konverterar valfritt numeriskt värde eller en sträng till ett långt värde. Ett valfritt Java-decimalformat kan användas för konverteringen. Trunkerar alla flytande, dubbla.

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

topN

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

Hämtar de översta N-värdena för den här kolumnen baserat på argumentet count.

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

toShort

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

Konverterar valfritt numeriskt värde eller en sträng till ett kort värde. Ett valfritt Java-decimalformat kan användas för konverteringen. Trunkerar alla heltal, långa, flytande, dubbla.

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

toString

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

Konverterar en primitiv datatyp till en sträng. För tal och datum kan ett format anges. Om det är ospecificerat väljs systemstandarden. Java-decimalformat används för tal. Se Java SimpleDateFormat för alla möjliga datumformat. standardformatet är åå-MM-dd. För datum eller tidsstämpel kan ett språk anges.

  • 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

Konverterar en sträng till en tidsstämpel med ett valfritt tidsstämpelformat. Om tidsstämpeln utelämnas används standardmönstret yyyy-[M]M-[d]d hh:mm:ss[.f...]. Du kan skicka en valfri tidszon i form av "GMT", "PST", "UTC", "America/Cayman". Tidsstämpeln stöder upp till millisekunders noggrannhet med värdet 999. Se Java-klassen SimpleDateFormat för tillgängliga format. 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

Konverterar tidsstämpeln till UTC. Du kan skicka en valfri tidszon i form av "GMT", "PST", "UTC", "America/Cayman". Den är standardinställningen för den aktuella tidszonen. Se Java-klassen SimpleDateFormat för tillgängliga format. 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

Ersätt en uppsättning tecken med en annan uppsättning tecken i strängen. Tecken har 1 till 1 ersättning.

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

trim

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

Trimmar en sträng med inledande och avslutande tecken. Om den andra parametern är ospecificerad trimmas tomt utrymme. Annars trimmas alla tecken som anges i den andra parametern.

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

true

true() => boolean

Returnerar alltid ett sant värde. Använd funktionen syntax(true()) om det finns en kolumn med namnet "true".

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

typeMatch

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

Matchar kolumnens typ. Kan endast användas i mönsteruttryck. Talet matchar kort, heltal, lång, dubbel, flyttal eller decimal, integral matchar kort, heltal, lång, bråkmatchningar dubbel, flyttal, decimal och datetime matchar datum- eller tidsstämpeltyp.

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

U

unescape

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

Unescapes en sträng enligt ett format. Literalvärden för acceptabelt format är "json", "xml", "ecmascript", "html", "java".

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

unfold

unfold (<value1>: array) => any

Utvecklar en matris till en uppsättning rader och upprepar värdena för de återstående kolumnerna i varje rad.

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

unhex

unhex(<value1>: string) => binary

Hämtar ett binärt värde från strängrepresentationen. Detta kan användas med sha2, md5 för att konvertera från sträng till binär representation

  • 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

Returnerar en unionsuppsättning med distinkta objekt från 2 matriser.

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

upper

upper(<value1> : string) => string

Versaler en sträng.

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

uuid

uuid() => string

Returnerar det genererade UUID:et.

  • uuid()

V

variance

variance(<value1> : number) => double

Hämtar variansen för en kolumn.

  • variance(sales)

varianceIf

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

Baserat på ett villkor hämtar variansen för en kolumn.

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

variancePopulation

variancePopulation(<value1> : number) => double

Hämtar populationsavvikelsen för en kolumn.

  • variancePopulation(sales)

variancePopulationIf

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

Baserat på ett villkor hämtar populationsvariansen för en kolumn.

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

varianceSample

varianceSample(<value1> : number) => double

Hämtar den opartiska variansen för en kolumn.

  • varianceSample(sales)

varianceSampleIf

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

Baserat på ett villkor hämtar den opartiska variansen för en kolumn.

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

O

weekOfYear

weekOfYear(<value1> : datetime) => integer

Får veckan på året givet ett datum.

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

weeks

weeks(<value1> : integer) => long

Varaktighet i millisekunder för antal veckor.

  • weeks(2) -> 1209600000L

X

xor

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

Logisk XOR-operator. Samma som ^ operator.

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

Y

year

year(<value1> : datetime) => integer

Hämtar årsvärdet för ett datum.

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