Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
VZTAHUJE SE NA:
Azure Data Factory
Azure Synapse Analytics
Tip
Data Factory v Microsoft Fabric je nová generace Azure Data Factory s jednodušší architekturou, integrovanou AI a novými funkcemi. Pokud s integrací dat začínáte, začněte Fabric Data Factory. Stávající úlohy ADF lze upgradovat na Fabric pro přístup k novým funkcím v oblastech datové vědy, analýz v reálném čase a vytváření sestav.
Toky dat jsou k dispozici v kanálech Azure Data Factory i v kanálech Azure Synapse Analytics. Tento článek se týká mapování toků dat. Pokud s transformacemi začínáte, přečtěte si úvodní článek Transformace dat pomocí mapování toků dat.
Tento článek obsahuje podrobnosti o použití všech výrazů a funkcí podporovaných Azure Data Factory a Azure Synapse Analytics při mapování toků dat. Souhrny jednotlivých podporovaných typů funkcí najdete v následujících článcích:
- Agregační funkce
- Maticové funkce
- Vyhledávací funkce uložené v mezipaměti
- Převodní funkce
- Funkce pro datum a čas
- Funkce výrazů
- Mapové funkce
- Metafunctions
- Funkce okna
Abecední seznam všech funkcí
Následující abecední seznam obsahuje všechny funkce, které jsou k dispozici v mapování toků dat.
A
abs
abs(<value1> : number) => number
Vrátí absolutní hodnotu čísla.
abs(-20) -> 20abs(10) -> 10
acos
acos(<value1> : number) => double
Vypočítá kosinus inverzní hodnotu.
acos(1) -> 0.0
add
add(<value1> : any, <value2> : any) => any
Sečte dvojici řetězců nebo čísel. Přidá datové označení na mnoho dnů. Přidá dobu trvání do časového razítka. Připojí jedno pole podobného typu k jinému. Stejné jako operátor + .
add(10, 20) -> 3010 + 20 -> 30add('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
Přidá dny k datu nebo časové značce. Stejné jako + operátor kalendářních dat.
addDays(toDate('2016-08-08'), 1) -> toDate('2016-08-09')
addMonths
addMonths(<date/timestamp> : datetime, <months to add> : integral, [<value3> : string]) => datetime
Přidá měsíce k datu nebo časovému razítku. Volitelně můžete předat časové pásmo.
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
Používá logický AND operátor. Stejné jako &&.
and(true, false) -> falsetrue && false -> false
approxDistinctCount
approxDistinctCount(<value1> : any, [ <value2> : double ]) => long
Získá přibližný agregovaný počet jedinečných hodnot pro sloupec. Volitelným druhým parametrem je kontrola chyby odhadu.
approxDistinctCount(ProductID, .05) => long
array
array([<value1> : any], ...) => array
Vytvoří pole položek. Všechny položky by měly mít stejný typ. Pokud nejsou zadány žádné položky, je pole prázdných řetězců výchozí. Stejné jako operátor [] pro vytvoření.
array('Seattle', 'Washington')['Seattle', 'Washington']['Seattle', 'Washington'][1]'Washington'
ascii
ascii(<Input> : string) => number
Vrátí číselnou hodnotu vstupního znaku. Pokud má vstupní řetězec více znaků, vrátí se číselná hodnota prvního znaku.
ascii('A') -> 65ascii('a') -> 97
asin
asin(<value1> : number) => double
Vypočítá inverzní sinusovou hodnotu.
asin(0) -> 0.0
assertErrorMessages
assertErrorMessages() => map
Vrátí mapu všech chybových zpráv pro řádek s ID assert jako klíč.
Examples
assertErrorMessages() => ['assert1': 'This row failed on assert1.', 'assert2': 'This row failed on assert2.']. In this example, at(assertErrorMessages(), 'assert1') would return 'This row failed on assert1.'
associate
reassociate(<value1> : map, <value2> : binaryFunction) => map
Vytvoří mapu klíčů/hodnot. Všechny klíče a hodnoty by měly být stejného typu. Pokud nejsou zadány žádné položky, ve výchozím nastavení je použita mapa s typem řetězec-řetězec. Stejné jako operátor [ -> ] pro vytvoření. Klíče a hodnoty by se měly vzájemně střídat.
associate('fruit', 'apple', 'vegetable', 'carrot' )=> ['fruit' -> 'apple', 'vegetable' -> 'carrot']
at
at(<value1> : array/map, <value2> : integer/key type) => array
Vyhledá prvek v indexu pole. Index je 1-základový. Index mimo hranice má za následek hodnotu null. Vyhledá hodnotu v mapě při zadání klíče. Pokud se klíč nenajde, vrátí hodnotu null.
at(['apples', 'pears'], 1) => 'apples'at(['fruit' -> 'apples', 'vegetable' -> 'carrot'], 'fruit') => 'apples'
atan
atan(<value1> : number) => double
Vypočítá hodnotu inverzního tangens.
atan(0) -> 0.0
atan2
atan2(<value1> : number, <value2> : number) => double
Vrátí úhel v radiánech mezi kladnou osou x roviny a bodem daným souřadnicemi.
atan2(0, 0) -> 0.0
avg
avg(<value1> : number) => number
Získá průměr hodnot sloupce.
avg(sales)
avgIf
avgIf(<value1> : boolean, <value2> : number) => number
Získá průměr hodnot sloupce na základě kritérií.
avgIf(region == 'West', sales)
B
between
between(<value1> : any, <value2> : any, <value3> : any) => boolean
Zkontroluje, jestli je první hodnota mezi dvěma dalšími hodnotami včetně. Můžete porovnat číselné hodnoty, řetězce a datetime hodnoty.
between(10, 5, 24)truebetween(currentDate(), currentDate() + 10, currentDate() + 20)false
bitwiseAnd
bitwiseAnd(<value1> : integral, <value2> : integral) => integral
Používá bitový And operátor napříč celočíselnými typy. Stejné jako operátor & .
bitwiseAnd(0xf4, 0xef)0xe4(0xf4 & 0xef)0xe4
bitwiseOr
bitwiseOr(<value1> : integral, <value2> : integral) => integral
Používá bitový Or operátor napříč celočíselnými typy. Stejné jako operátor | .
bitwiseOr(0xf4, 0xef)0xff(0xf4 | 0xef)0xff
bitwiseXor
bitwiseXor(<value1> : any, <value2> : any) => any
Používá bitový Or operátor napříč celočíselnými typy. Stejné jako | operátor
bitwiseXor(0xf4, 0xef)0x1b(0xf4 ^ 0xef)0x1b(true ^ false)true(true ^ true)false
blake2b
blake2b(<value1> : integer, <value2> : any, ...) => string
Vypočítá shrnutí Blake2 pro množinu sloupců obsahující různé primitivní datové typy při zadání bitové délky, která musí být násobkem 8 od 8 do 512. Můžete ho použít k výpočtu otisku prstu pro řádek.
blake2b(256, 'gunchus', 8.2, 'bojjus', true, toDate('2010-4-4'))'c9521a5080d8da30dffb430c50ce253c345cc4c4effc315dab2162dac974711d'
blake2bBinary
blake2bBinary(<value1> : integer, <value2> : any, ...) => binary
Vypočítá hodnotu hash Blake2 pro sadu sloupců s různými primitivními datovými typy při uvedení bitové délky, kde délka musí být pouze násobkem 8 v rozmezí od 8 do 512. Můžete ho použít k výpočtu otisku prstu pro řádek.
blake2bBinary(256, 'gunchus', 8.2, 'bojjus', true, toDate('2010-4-4'))unHex('c9521a5080d8da30dffb430c50ce253c345cc4c4effc315dab2162dac974711d')
byItem
byItem(<parent column> : any, <column name> : string) => any
Najde dílčí položku v rámci struktury nebo pole struktury. Pokud existuje více shod, vrátí se první shoda. Pokud neexistují žádné shody, vrátí se hodnota NULL. Vrácená hodnota musí být převedena jednou z akcí převodu typu (například ? date a ? string). Adresovat názvy sloupců známé v době návrhu podle jejich názvů. Vypočítané vstupy se nepodporují, ale můžete použít nahrazení parametrů.
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
Vybere hodnotu sloupce podle názvu v datovém proudu. Jako druhý argument můžete předat volitelný název datového proudu. Pokud existuje více shod, vrátí se první shoda. Pokud neexistují žádné shody, vrátí se hodnota NULL. Vrácená hodnota musí být převedena jednou z funkcí převodu typů (například TO_DATE a TO_STRING). Adresovat názvy sloupců známé v době návrhu podle jejich názvů. Vypočítané vstupy se nepodporují, ale můžete použít nahrazení parametrů.
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
Vyberte pole sloupců podle názvu v datovém proudu. Jako druhý argument můžete předat volitelný název datového proudu. Pokud existuje více shod, vrátí se první shoda. Pokud sloupec neobsahuje žádné shody, celý výstup je hodnota NULL. Vrácená hodnota vyžaduje funkci převodu typu (například toDate a toString). Adresovat názvy sloupců známé v době návrhu podle jejich názvů. Vypočítané vstupy se nepodporují, ale můžete použít nahrazení parametrů.
toString(byNames(['parent', 'child']))byNames(['parent']) ? stringtoLong(byNames(['income']))byNames(['income']) ? longtoBoolean(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
Vybere hodnotu sloupce podle názvu v datovém proudu původu. Druhým argumentem je název původního datového proudu. Pokud existuje více shod, vrátí se první shoda. Pokud neexistují žádné shody, vrátí se hodnota NULL. Vrácená hodnota musí být převedena jednou z funkcí převodu typů (například TO_DATE a TO_STRING). Adresovat názvy sloupců známé v době návrhu podle jejich názvů. Vypočítané vstupy se nepodporují, ale můžete použít nahrazení parametrů.
toString(byOrigin('ancestor', 'ancestorStream'))
byOrigins
byOrigins(<column names> : array, [<origin stream name> : string]) => any
Vybere pole sloupců podle názvu v datovém proudu. Druhým argumentem je datový proud, ze kterého pochází. Pokud existuje více shod, vrátí se první shoda. Pokud neexistují žádné shody, vrátí se hodnota NULL. Vrácená hodnota musí být převedena jednou z funkcí převodu typů (například TO_DATE a TO_STRING). Adresovat názvy sloupců známé v době návrhu podle jejich názvů. Vypočítané vstupy se nepodporují, ale můžete použít nahrazení parametrů.
toString(byOrigins(['ancestor1', 'ancestor2'], 'ancestorStream'))
byPath
byPath(<value1> : string, [<streamName> : string]) => any
Vyhledá hierarchickou cestu podle názvu v datovém proudu. Jako druhý argument můžete předat volitelný název datového proudu. Pokud se taková cesta nenajde, vrátí NULL. Názvy sloupců a cesty známé během návrhu by měly být odkazovány pouze pomocí jejich názvu nebo cesty v notaci s tečkou. Vypočítané vstupy se nepodporují, ale můžete použít nahrazení parametrů.
byPath('grandpa.parent.child') => column
byPosition
byPosition(<position> : integer) => any
Vybere hodnotu sloupce podle relativní pozice (začínající od 1) v datovém toku. Pokud je pozice mimo hranice, vrátí NULL hodnotu. Vrácená hodnota musí být převedena jednou z funkcí převodu typů (například TO_DATE ).TO_STRING Vypočítané vstupy se nepodporují, ale můžete použít nahrazení parametrů.
toString(byPosition(1))toDecimal(byPosition(2), 10, 2)toBoolean(byName(4))toString(byName($colName))toString(byPosition(1234))
C
case
case(<condition> : boolean, <true_expression> : any, <false_expression> : any, ...) => any
Na základě střídavých podmínek case funkce použije jednu nebo druhou hodnotu. Pokud je počet vstupů sudý, druhý se ve výchozím nastavení nastaví na NULL pro poslední podmínku.
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')) -> truecase(10 + 20 == 25, 'bojjus', 'do' > 'go', 'gunchus', 'dumbo') -> 'dumbo'
cbrt
cbrt(<value1> : number) => double
Vypočítá kořen datové krychle čísla.
cbrt(8) -> 2.0
ceil
ceil(<value1> : number) => number
Vrátí nejmenší celé číslo, které není menší než číslo.
ceil(-0.1) -> 0
char
char(<Input> : number) => string
Vrátí znak ASCII reprezentovaný vstupním číslem. Pokud je číslo větší než 256, výsledek je ekvivalentní znaku (číslo % 256).
char(65) -> 'A'char(97) -> 'a'
coalesce
coalesce(<value1> : any, ...) => any
Vrátí první nenullovou hodnotu ze sady vstupů. Všechny vstupy by měly být stejného typu.
coalesce(10, 20) -> 10coalesce(toString(null), toString(null), 'dumbo', 'bo', 'go') -> 'dumbo'
collect
collect(<value1> : any) => array
Shromažďuje všechny hodnoty výrazu v agregované skupině do pole. Během tohoto procesu můžete shromažďovat a transformovat struktury na alternativní struktury. Počet položek se rovná počtu řádků v dané skupině a může obsahovat hodnoty null. Počet shromážděných položek by měl být malý.
collect(salesPerson)collect(firstName + lastName))collect(@(name = salesPerson, sales = salesAmount) )
collectUnique
collectUnique(<value1> : any) => array
Shromažďuje všechny hodnoty výrazu v agregované skupině do jedinečného pole. Během tohoto procesu můžete shromažďovat a transformovat struktury na alternativní struktury. Počet položek se rovná počtu řádků v dané skupině a může obsahovat hodnoty null. Počet shromážděných položek by měl být malý.
collect(salesPerson)collect(firstName + lastName))collect(@(name = salesPerson, sales = salesAmount) )
columnNames
columnNames(
<value1>columnNames( : string, i><value1> : boolean) = array>
Získá názvy všech výstupních sloupců datového proudu. Jako první argument můžete předat volitelný název datového proudu. Druhý argument je také volitelný s hodnotou false jako výchozí. Pokud nastavíte druhý argument na true(), Data Factory vrátí pouze sloupce, které jsou posunuty přes posun schématu.
columnNames()
columnNames('DeriveStream')
columnNames('DeriveStream', true())
columnNames('', true())
columns
columns([<stream name> : string]) => any
Získá hodnoty všech výstupních sloupců pro datový proud. Jako druhý argument můžete předat volitelný název datového proudu.
columns()
columns('DeriveStream')
compare
compare(<value1> : any, <value2> : any) => integer
Porovná dvě hodnoty stejného typu. Vrátí záporné celé číslo, pokud hodnota1 < hodnota2, 0 pokud hodnota1 == hodnota2, a kladnou hodnotu, pokud hodnota1 > hodnota2.
(compare(12, 24) < 1) -> true
(compare('dumbo', 'dum') > 0) -> true
concat
concat(<this> : string, <that> : string, ...) => string
Zřetězí proměnný počet řetězců dohromady. Stejné jako operátor + s řetězci.
concat('dataflow', 'is', 'awesome') -> 'dataflowisawesome'
'dataflow' + 'is' + 'awesome' -> 'dataflowisawesome'
isNull('sql' + null) -> true
concatWS
concatWS(<separator> : string, <this> : string, <that> : string, ...) => string
Zřetězí proměnný počet řetězců s použitím oddělovače. Prvním parametrem je oddělovač.
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
Vrátí true , pokud se některý prvek v zadaném poli vyhodnotí jako true v zadaném predikátu. Funkce Th contains očekává odkaz na jeden prvek jako argument predikátové funkce #item.
contains([1, 2, 3, 4], #item == 3) -> true
contains([1, 2, 3, 4], #item > 5) -> false
cos
cos(<value1> : number) => double
Vypočítá kosinusovou hodnotu.
cos(10) -> -0.8390715290764524
cosh
cosh(<value1> : number) => double
Vypočítá hyperbolický kosinus hodnoty.
cosh(0) -> 1.0
count
count([<value1> : any]) => long
Získá agregovaný počet hodnot. Pokud je zadán jeden nebo více volitelných sloupců, ignoruje NULL hodnoty v počtu.
count(custId)
count(custId, custName)
count()
count(iif(isNull(custId), 1, NULL))
countAll
countAll([<value1> : any]) => long
Získá agregovaný počet hodnot včetně hodnot null.
countAll(custId)
countAll()
countDistinct
countDistinct(<value1> : any, [<value2> : any], ...) => long
Získá agregovaný počet jedinečných hodnot sady sloupců.
countDistinct(custId, custName)
countAllDistinct
countAllDistinct(<value1> : any, [<value2> : any], ...) => long
Získá agregovaný počet jedinečných hodnot množiny sloupců včetně hodnot null.
countAllDistinct(custId, custName)
countIf
countIf(<value1> : boolean, [<value2> : any]) => long
Získá agregovaný počet hodnot na základě kritérií. Pokud je specifikován volitelný sloupec, počítání ignoruje hodnoty NULL.
countIf(state == 'CA' && commission < 10000, name)
covariancePopulation
covariancePopulation(<value1> : number, <value2> : number) => double
Získá populační kovarianci mezi dvěma sloupci.
covariancePopulation(sales, profit)
covariancePopulationIf
covariancePopulationIf(<value1> : boolean, <value2> : number, <value3> : number) => double
Získá populační kovarianci dvou sloupců na základě kritérií.
covariancePopulationIf(region == 'West', sales)
covarianceSample
covarianceSample(<value1> : number, <value2> : number) => double
Získá výběrovou kovarianci dvou sloupců.
covarianceSample(sales, profit)
covarianceSampleIf
covarianceSampleIf(<value1> : boolean, <value2> : number, <value3> : number) => double
Získá kovarianci vzorku dvou sloupců na základě kritérií.
covarianceSampleIf(region == 'West', sales, profit)
crc32
crc32(<value1> : any, ...) => long
Vypočítá hodnotu hash CRC32 množiny sloupců různých primitivních datových typů při zadání bitové délky, která může být pouze z hodnot 0(256), 224, 256, 384a 512. Můžete ho použít k výpočtu otisku prstu pro řádek.
crc32(256, 'gunchus', 8.2, 'bojjus', true, toDate('2010-4-4')) -> 3630253689L
cumeDist
cumeDist() => integer
Funkce cumeDist vypočítá pozici hodnoty vzhledem ke všem hodnotám v oddílu. Výsledkem je počet řádků předcházejících nebo rovno aktuálnímu řádku v pořadí oddílu děleného celkovým počtem řádků v oddílu okna. Všechny shodné hodnoty v pořadí budou vyhodnoceny na stejnou pozici.
cumeDist()
currentDate
currentDate([<value1> : string]) => date
Získá aktuální datum, kdy se tato úloha spustí. Volitelně můžete předat časové pásmo ve formě GMT, PST, UTCnebo America/Cayman. Jako výchozí se používá místní časové pásmo datového centra nebo oblasti datové továrny. Dostupné formáty najdete v Java třídy SimpleDateFormat.
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
Získá aktuální časové razítko při spuštění úlohy s místním časovým pásmem.
currentTimestamp() == toTimestamp('2250-12-31 12:12:12') -> false
currentUTC
currentUTC([<value1> : string]) => timestamp
Získá aktuální časovou značku v čase UTC. Pokud chcete, aby váš aktuální čas byl interpretován v jiném časovém pásmu než v časovém pásmu clusteru, můžete předat volitelné časové pásmo ve formě GMT, PST, UTCnebo America/Cayman. Výchozí hodnota je aktuální časové pásmo. Dostupné formáty najdete v Java třídy SimpleDateFormat. Chcete-li převést čas UTC na jiné časové pásmo, použijte 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
Získá den v měsíci při zadání data.
dayOfMonth(toDate('2018-06-08')) -> 8
dayOfWeek
dayOfWeek(<value1> : datetime) => integer
Zjistí den v týdnu při zadání data. Například 1 je neděle, 2 je pondělí, ... a 7 je sobota.
dayOfWeek(toDate('2018-06-08')) -> 6
dayOfYear
dayOfYear(<value1> : datetime) => integer
Zjistí den v roce na základě zadaného data.
dayOfYear(toDate('2016-04-09')) -> 100
days
days(<value1> : integer) => long
Doba trvání v milisekundách pro počet dní.
days(2) -> 172800000L
decode
decode(<Input> : any, <Charset> : string) => binary
Dekóduje zakódovaná vstupní data do řetězce na základě dané znakové sady. Pomocí druhého (volitelného) argumentu můžete určit, která znaková sada se má použít. Příklady: US-ASCII, , ISO-8859-1( UTF-8 výchozí), UTF-16BE, UTF-16LE, a UTF-16.
decode(array(toByte(97),toByte(98),toByte(99)), 'US-ASCII') -> abc
degrees
degrees(<value1> : number) => double
Převede radiány na stupně.
degrees(3.141592653589793) -> 180
denseRank
denseRank() => integer
Vypočítá pořadí hodnoty ve skupině hodnot specifikovaných v klauzuli ORDER BY v rámci okna. Výsledkem je jedna plus počet řádků, které předcházejí aktuálnímu řádku, nebo jsou mu rovné v pořadí oddílu. Hodnoty nevytvářely mezery v sekvenci. Funkce denseRank funguje i v případě, že data nejsou seřazená a hledají změny hodnot.
denseRank()
distinct
distinct(<value1> : array) => array
Vrátí unikátní množinu položek z pole.
distinct([10, 20, 30, 10]) => [10, 20, 30]
divide
divide(<value1> : any, <value2> : any) => any
Vydělí dvojici čísel. Stejné jako operátor / .
divide(20, 10) -> 2
20 / 10 -> 2
dropLeft
dropLeft(<value1> : string, <value2> : integer) => string
Odstraní co nejvíce znaků z levé části řetězce. Pokud požadovaný pokles překročí délku řetězce, vrátí se prázdný řetězec.
dropLeft('bojjus', 2) => 'jjus'
dropLeft('cake', 10) => ''
dropRight
dropRight(<value1> : string, <value2> : integer) => string
Odebere tolik znaků zprava daného řetězce. Pokud požadovaný pokles překročí délku řetězce, vrátí se prázdný řetězec.
dropRight('bojjus', 2) => 'bojj'
dropRight('cake', 10) => ''
E
encode
encode(<Input> : string, <Charset> : string) => binary
Zakóduje vstupní řetězcová data do binárního souboru na základě znakové sady. Druhý (volitelný) argument lze použít k určení, kterou znakovou sadu použít. Příklady: US-ASCII, , ISO-8859-1( UTF-8 výchozí), UTF-16BE, UTF-16LE, a UTF-16.
encode('abc', 'US-ASCII') -> array(toByte(97),toByte(98),toByte(99))
endsWith
endsWith(<string> : string, <substring to check> : string) => boolean
Zkontroluje, jestli řetězec končí zadaným řetězcem.
endsWith('dumbo', 'mbo') -> true
equals
equals(<value1> : any, <value2> : any) => boolean
Používá operátor porovnání rovnosti. Stejné jako operátor == .
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
Používá operátor rovnosti ignorující velikost písmen. Stejné jako operátor <=> .
'abc'<=>'Abc' -> true
equalsIgnoreCase('abc', 'Abc') -> true
escape
escape(<string_to_escape> : string, <format> : string) => string
Unikne řetězci podle formátu. Hodnoty literálů pro přijatelný formát jsou json, xml, ecmascript, html, a java.
except
except(<value1> : array, <value2> : array) => array
Vrátí množinu rozdílů jednoho pole od druhého odstraněním duplicit.
except([10, 20, 30], [20, 40]) => [10, 30]
expr
expr(<expr> : string) => any
Výsledkem je výraz z řetězce, který je stejný jako zápis tohoto výrazu v neliterální podobě. Můžete ho použít k předání parametrů jako řetězcových reprezentací.
expr('price * discount') => any
F
factorial
factorial(<value1> : number) => long
Vypočítá faktoriál čísla.
factorial(5) -> 120
false
false() => boolean
Vždy vrátí hodnotu false.
syntax(false()) Funkci použijte, pokud je sloupec pojmenován false.
(10 + 20 > 30) -> false
(10 + 20 > 30) -> false()
filter
filter(<value1> : array, <value2> : unaryfunction) => array
Filtruje prvky z pole, které nesplňují zadaný predikát. Filtr očekává odkaz na jeden prvek v predikátové funkci jako #item.
filter([1, 2, 3, 4], #item > 2) -> [3, 4]
filter(['a', 'b', 'c', 'd'], #item == 'a' || #item == 'b') -> ['a', 'b']
find
find(<value1> : array, <value2> : unaryfunction) => any
Najděte první položku z pole, které odpovídá podmínce. Přebírá funkci filtru, kde můžete adresovat položku v poli jako #item. U hluboko vnořených map můžete odkazovat na nadřazené mapy pomocí #item_n notace (#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
Získá první hodnotu skupiny sloupců. Pokud druhý parametr ignoreNulls vynecháte, služba Data Factory předpokládá hodnotu false.
first(sales)
first(sales, false)
flatten
flatten(<array> : array, <value2> : array ..., <value2> : boolean) => array
Zplošťuje pole nebo pole do jednoho pole. Pole atomických položek se vracejí beze změny. Poslední argument je nepovinný a ve výchozím nastavení je nastaven na false, což umožňuje zploštění více než jedné úrovně rekurzivně.
flatten([['bojjus', 'girl'], ['gunchus', 'boy']]) => ['bojjus', 'girl', 'gunchus', 'boy']
flatten([[['bojjus', 'gunchus']]] , true) => ['bojjus', 'gunchus']
floor
floor(<value1> : number) => number
Vrátí největší celé číslo, které není větší než číslo.
floor(-0.1) -> -1
fromBase64
fromBase64(<value1> : string, <encoding type> : string) => string
Dekóduje konkrétní řetězec kódovaný v base64. Volitelně můžete předat typ kódování.
fromBase64('Z3VuY2h1cw==') -> 'gunchus'
fromBase64('SGVsbG8gV29ybGQ=', 'Windows-1252') -> 'Hello World'
fromUTC
fromUTC(<value1> : timestamp, [<value2> : string]) => timestamp
Převede se na časové razítko z UTC. Volitelně můžete předat časové pásmo ve formě GMT, PST, UTC, nebo America/Cayman. Výchozí hodnota je aktuální časové pásmo. Dostupné formáty najdete v Java třídy SimpleDateFormat.
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
Používá operátor větší porovnání. Stejné jako operátor >.
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
Používá porovnání větší než nebo rovno operátoru. Stejné jako operátor >=.
greaterOrEqual(12, 12) -> true
('dumbo' >= 'dum') -> true
greatest
greatest(<value1> : any, ...) => any
Vrátí nejvyšší hodnotu ze seznamu hodnot jako vstupu a přeskočí hodnoty null. Vrátí null , pokud všechny vstupy mají hodnotu 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
Kontroluje hodnotu sloupce podle názvu v datovém proudu. Jako druhý argument můžete předat volitelný název datového proudu. Adresovat názvy sloupců známé v době návrhu podle jejich názvů. Vypočítané vstupy se nepodporují, ale můžete použít nahrazení parametrů.
hasColumn('parent')
hasError
hasError([<value1> : string]) => boolean
Kontroluje, zda je položka se zadaným ID označena jako chyba.
Examples
hasError('assert1')
hasError('assert2')
hasPath
hasPath(<value1> : string, [<streamName> : string]) => boolean
Zkontroluje, jestli v datovém proudu existuje určitá hierarchická cesta podle názvu. Jako druhý argument můžete předat volitelný název datového proudu. Názvy sloupců a cesty známé během návrhu by měly být odkazovány pouze pomocí jejich názvu nebo cesty v notaci s tečkou. Vypočítané vstupy se nepodporují, ale můžete použít nahrazení parametrů.
hasPath('grandpa.parent.child') => boolean
hex
hex(<value1>: binary) => string
Vrátí šestnáctkové řetězcové vyjádření binární hodnoty.
hex(toBinary([toByte(0x1f), toByte(0xad), toByte(0xbe)])) -> '1fadbe'
hour
hour(<value1> : timestamp, [<value2> : string]) => integer
Získá hodnotu hodiny časového razítka. Volitelně můžete předat časové pásmo ve formě GMT, PST, UTCnebo America/Cayman. Místní časové pásmo se používá jako výchozí. Dostupné formáty najdete v Java třídy SimpleDateFormat.
hour(toTimestamp('2009-07-30 12:58:59')) -> 12
hour(toTimestamp('2009-07-30 12:58:59'), 'PST') -> 12
hours
hours(<value1> : integer) => long
Získá dobu trvání v milisekundách pro počet hodin.
hours(2) -> 7200000L
I
iif
iif(<condition> : boolean, <true_expression> : any, [<false_expression> : any]) => any
Použije jednu nebo druhou hodnotu na základě podmínky. Pokud druhý není zadán, hodnota je považována za NULL. Obě hodnoty musí být kompatibilní (například číselné a řetězcové).
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
Vrátí první položku, která nemá hodnotu null, pokud zadáte dva nebo více vstupů. Tato funkce je ekvivalentní coalesce funkci.
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
Zkontroluje, jestli je položka v poli.
in([10, 20, 30], 10) -> true
in(['good', 'kid'], 'bad') -> false
initCap
initCap(<value1> : string) => string
Převede první písmeno každého slova na velká písmena. Slova jsou označena jako oddělená prázdným znakem.
initCap('cool iceCREAM') -> 'Cool Icecream'
instr
instr(<string> : string, <substring to find> : string) => integer
Najde pozici podřetězce v řetězci (počínaje od 1). Pokud se nenajde, vrátí se 0.
instr('dumbo', 'mbo') -> 3
instr('microsoft', 'o') -> 5
instr('good', 'bad') -> 0
intersect
intersect(<value1> : array, <value2> : array) => array
Vrátí množinu různých položek ze dvou polí.
intersect([10, 20, 30], [20, 40]) => [20]
isBitSet
isBitSet (<value1> : array, <value2>:integer ) => boolean
Zkontroluje, jestli je v této bitové sadě nastavená bitová pozice.
isBitSet(toBitSet([10, 32, 98]), 10) => true
isBoolean
isBoolean(<value1>: string) => boolean
Zkontroluje, zda je řetězcová hodnota Boolean hodnota podle pravidel toBoolean().
isBoolean('true') -> true
isBoolean('no') -> true
isBoolean('microsoft') -> false
isByte
isByte(<value1> : string) => boolean
Zkontroluje, jestli je řetězcová hodnota bajtová hodnota, pokud je uveden volitelný formát podle pravidel toByte().
isByte('123') -> true
isByte('chocolate') -> false
isDate
isDate (<value1> : string, [<format>: string]) => boolean
Zkontroluje, jestli je vstupní řetězec datum pomocí volitelného formátu data. Dostupné formáty najdete v Java třídy SimpleDateFormat. Pokud je vynechán vstupní formát data, je výchozí formát yyyy-[M]M-[d]d. Přijaté formáty jsou :[ 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
Zkontroluje, jestli je řetězcová hodnota desetinná hodnota, pokud je uveden volitelný formát podle pravidel .toDecimal()
isDecimal('123.45') -> true
isDecimal('12/12/2000') -> false
isDelete
isDelete([<value1> : integer]) => boolean
Zkontroluje, jestli se má řádek odstranit. U transformací, které přebírají více než jeden vstupní datový proud, můžete předat index datového proudu (1). Index datového proudu by měl být buď 1 nebo 2a výchozí hodnota je 1.
isDelete()
isDelete(1)
isDistinct
isDistinct(<value1> : any , <value1> : any) => boolean
Najde, jestli je sloupec nebo sada sloupců odlišná. Nezapočítává hodnotu null jako jedinečnou hodnotu.
isDistinct(custId, custName) => boolean
isDouble
isDouble (<value1> : string, [<format>: string]) => boolean
Zkontroluje, jestli je řetězcová hodnota dvojitou hodnotou, pokud je uveden volitelný formát podle pravidel .toDouble()
isDouble('123') -> true
isDouble('$123.45' -> '$###.00') -> true
isDouble('icecream') -> false
isError
isError([<value1> : integer]) => boolean
Zkontroluje, jestli je řádek označený jako chyba. U transformací, které přebírají více než jeden vstupní datový proud, můžete předat index datového proudu (1). Index datového proudu by měl být buď 1 nebo 2 a výchozí hodnota je 1.
isError()
isError(1)
isFloat
isFloat (<value1> : string, [<format>: string]) => boolean
Zkontroluje, zda hodnota řetězce je plovoucí hodnota, pokud je uveden volitelný formát podle pravidel toFloat().
isFloat('123') -> true
isFloat('$123.45' -> '$###.00') -> true
isFloat('icecream') -> false
isIgnore
isIgnore([<value1> : integer]) => boolean
Zkontroluje, jestli se má řádek ignorovat. U transformací, které přebírají více než jeden vstupní datový proud, můžete předat index datového proudu (1). Index datového proudu by měl být buď 1 nebo 2a výchozí hodnota je 1.
isIgnore()
isIgnore(1)
isInsert
isInsert([<value1> : integer]) => boolean
Zkontroluje, jestli je řádek označený pro vložení. U transformací, které přebírají více než jeden vstupní datový proud, můžete předat index datového proudu (1). Index datového proudu by měl být buď 1 nebo 2a výchozí hodnota je 1.
isInsert()
isInsert(1)
isInteger
isInteger (<value1> : string, [<format>: string]) => boolean
Zkontroluje, zda hodnota řetězce je celočíselná hodnota, pokud je uveden volitelný formát podle pravidel .toInteger()
isInteger('123') -> true
isInteger('$123' -> '$###') -> true
isInteger('microsoft') -> false
isLong
isLong (<value1> : string, [<format>: string]) => boolean
Zkontroluje, zda je hodnota řetězce dlouhá hodnota, když je uveden volitelný formát podle pravidel toLong().
isLong('123') -> true
isLong('$123' -> '$###') -> true
isLong('gunchus') -> false
isMatch
isMatch([<value1> : integer]) => boolean
Zkontroluje, jestli se řádek shoduje s vyhledáváním. U transformací, které přebírají více než jeden vstupní datový proud, můžete předat index datového proudu (1). Index datového proudu by měl být buď 1 nebo 2a výchozí hodnota je 1.
isMatch()
isMatch(1)
isNan
isNan (<value1> : integral) => boolean
Zkontroluje, jestli hodnota není číslo.
isNan(10.2) => false
isNull
isNull(<value1> : any) => boolean
Zkontroluje, jestli je hodnota NULL.
isNull(NULL()) -> true
isNull('') -> false
isShort
isShort (<value1> : string, [<format>: string]) => boolean
Zkontroluje, zda je řetězcová hodnota krátká hodnota, pokud je uveden volitelný formát podle pravidel .toShort()
isShort('123') -> true
isShort('$123' -> '$###') -> true
isShort('microsoft') -> false
isTimestamp
isTimestamp (<value1> : string, [<format>: string]) => boolean
Kontroluje, jestli je vstupní řetězec datumového formátu časové razítko pomocí volitelného vstupního formátu časového razítka. Dostupné formáty najdete v Java třídy SimpleDateFormat. Pokud je časové razítko vynecháno, použije se výchozí vzor yyyy-[M]M-[d]d hh:mm:ss[.f...] . Volitelně můžete předat časové pásmo ve formě GMT, PST, UTCnebo America/Cayman. Funkce timestamp podporuje až milisekundovou přesnost s hodnotou 999. Dostupné formáty najdete v Java třídy SimpleDateFormat.
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
Zkontroluje, jestli je řádek označený k aktualizaci. U transformací, které přebírají více než jeden vstupní datový proud, můžete předat index datového proudu (1). Index datového proudu by měl být buď 1 nebo 2a výchozí hodnota je 1.
isUpdate()
isUpdate(1)
isUpsert
isUpsert([<value1> : integer]) => boolean
Zkontroluje, jestli je řádek označený pro vložení. U transformací, které přebírají více než jeden vstupní datový proud, můžete předat index datového proudu (1). Index datového proudu by měl být buď 1 nebo 2a výchozí hodnota je 1.
isUpsert()
isUpsert(1)
J
jaroWinkler
jaroWinkler(<value1> : string, <value2> : string) => double
Zjistí vzdálenost Jaro-Winkler mezi dvěma řetězci.
jaroWinkler('frog', 'frog') => 1.0
K
keyValues
keyValues(<value1> : array, <value2> : array) => map
Vytvoří mapu klíčů/hodnot. První parametr je pole klíčů a druhý je pole hodnot. Obě pole by měla mít stejnou délku.
keyValues(['bojjus', 'appa'], ['gunchus', 'ammi']) => ['bojjus' -> 'gunchus', 'appa' -> 'ammi']
kurtosis
kurtosis(<value1> : number) => double
Provádí výpočet kurtózy sloupce.
kurtosis(sales)
kurtosisIf
kurtosisIf(<value1> : boolean, <value2> : number) => double
Vypočítá kurtózu sloupce podle stanovených kritérií.
kurtosisIf(region == 'West', sales)
L
lag
lag(<value> : any, [<number of rows to look before> : number], [<default value> : any]) => any
Získá hodnotu prvního parametru vyhodnocených n řádků před aktuálním řádkem. Druhým parametrem je počet řádků, které se mají vrátit zpět, a výchozí hodnota je 1. Pokud není k dispozici tolik řádků, vrátí se hodnota null, pokud není zadána výchozí hodnota.
lag(amount, 2)
lag(amount, 2000, 100)
last
last(<value1> : any, [<value2> : boolean]) => any
Získá poslední hodnotu skupiny sloupců. Pokud druhý parametr ignoreNulls vynecháte, předpokládá se, že je false.
last(sales)
last(sales, false)
lastDayOfMonth
lastDayOfMonth(<value1> : datetime) => date
Získá poslední datum v měsíci, pokud je zadané 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
Získá hodnotu prvního parametru vyhodnocených n řádků za aktuálním řádkem. Druhým parametrem je počet řádků, které se mají dívat dopředu, a výchozí hodnota je 1. Pokud není k dispozici tolik řádků, vrátí se hodnota null, pokud není zadána výchozí hodnota.
lead(amount, 2)
lead(amount, 2000, 100)
least
least(<value1> : any, ...) => any
Používá porovnání menší než nebo rovno operátoru. Stejné jako operátor <= .
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
Extrahuje podřetězdí začínající indexem 1 s počtem znaků. Stejné jako SUBSTRING(str, 1, n).
left('bojjus', 2) -> 'bo'
left('bojjus', 20) -> 'bojjus'
length
length(<value1> : string) => integer
Vrátí délku řetězce.
length('dumbo') -> 5
lesser
lesser(<value1> : any, <value2> : any) => boolean
Používá porovnávací operátor menší. Stejné jako operátor < .
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
Používá porovnání menší než nebo rovno operátoru. Stejné jako operátor <= .
lesserOrEqual(12, 12) -> true
('dumbo' <= 'dum') -> false
levenshtein
levenshtein(<from string> : string, <to string> : string) => integer
Určuje Levenshteinovu vzdálenost mezi dvěma řetězci.
levenshtein('boys', 'girls') -> 4
like
like(<string> : string, <pattern match> : string) => boolean
Používá vzor řetězce, který odpovídá doslova. Výjimky jsou následující speciální symboly: _ odpovídá jakémukoli znaku ve vstupu (podobně jako .* v posix regulárních výrazech).
% odpovídá nule nebo více znaků ve vstupu (podobně jako .* v posix regulárních výrazech).
Řídicí znak je "". Pokud řídicí znak předchází speciálnímu symbolu nebo jinému řídicímu znaku, odpovídá následující znak doslova. Není platné umiskovat jakýkoli jiný znak.
like('icecream', 'ice%') -> true
locate
locate(<substring to find> : string, <string> : string, [<from index - 1-based> : integral]) => integer
Najde pozici (počítáno od 1) podřetězce v řetězci, přičemž hledání začíná na určité pozici. Pokud je pozice vynechána, začíná na začátku řetězce. Pokud se nenajde, vrátí se 0.
locate('mbo', 'dumbo') -> 3
locate('o', 'microsoft', 6) -> 7
locate('bad', 'good') -> 0
log
log(<value1> : number, [<value2> : number]) => double
Vypočítá logaritmickou hodnotu. Pokud použijete, můžete zadat volitelný základ nebo jiné číslo Euleru.
log(100, 10) -> 2
log10
log10(<value1> : number) => double
Vypočítá logaritmickou hodnotu se základem 10.
log10(100) -> 2
lookup
lookup(key, key2, ...) => complex[]
Vyhledá první řádek z jímky uložené v mezipaměti pomocí zadaných klíčů, které odpovídají klíčům z jímky uložené v mezipaměti.
cacheSink#lookup(movieId)
lower
lower(<value1> : string) => string
Převádí řetězec na malá písmena.
lower('GunChus') -> 'gunchus'
lpad
lpad(<string to pad> : string, <final padded length> : integral, <padding> : string) => string
Doleva odsazuje řetězec pomocí dodatečného odsazení, dokud řetězec nedosáhne určité délky. Pokud je řetězec roven nebo větší než zadaná délka, řetězec se ořízne na tuto délku.
lpad('dumbo', 10, '-') -> '-----dumbo'
lpad('dumbo', 4, '-') -> 'dumb'
ltrim
ltrim(<string to trim> : string, [<trim characters> : string]) => string
Levý oříznou řetězec počátečních znaků. Pokud druhý parametr není zadaný, oříznou se prázdné znaky. Jinak ořízne všechny znaky určené v druhém parametru.
ltrim(' dumbo ') -> 'dumbo '
ltrim('!--!du!mbo!', '-!') -> 'du!mbo!'
M
map
map(<value1> : array, <value2> : unaryfunction) => any
Namapuje každý prvek pole na nový prvek pomocí poskytnutého výrazu. Funkce map očekává odkaz na jeden prvek ve funkci výrazu jako #item.
map([1, 2, 3, 4], #item + 2) -> [3, 4, 5, 6]
map(['a', 'b', 'c', 'd'], #item + '_processed') -> ['a_processed', 'b_processed', 'c_processed', 'd_processed']
mapAssociation
mapAssociation(<value1> : map, <value2> : binaryFunction) => array
Transformuje mapu přidružením klíčů k novým hodnotám. Vrátí matici. Přebírá funkci mapování, kde můžete přistupovat k položce jako #key a aktuální hodnotu jako #value.
mapAssociation(['bojjus' -> 'gunchus', 'appa' -> 'ammi'], @(key = #key, value = #value)) => [@(key = 'bojjus', value = 'gunchus'), @(key = 'appa', value = 'ammi')]
mapIf
mapIf (<value1> : array, <value2> : binaryfunction, <value3>: binaryFunction) => any
Podmíněně mapuje pole na jiné pole se stejnou nebo menší délkou. Hodnoty mohou být libovolného datového typu, včetně structTypes. Přebírá funkci mapování, kde můžete adresovat položku v poli jako #item a index jako #index. U hluboko vnořených map můžete odkazovat na nadřazené mapy pomocí notace #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
Namapuje každý prvek pole na nový prvek pomocí poskytnutého výrazu. Funkce map očekává odkaz na jeden prvek ve funkci výrazu jako #item a odkaz na index elementu jako #index.
mapIndex([1, 2, 3, 4], #item + 2 + #index) -> [4, 6, 8, 10]
mapLoop
mapLoop(<value1> : integer, <value2> : unaryfunction) => any
Prochází smyčkou od 1 do zadané délky a vytvoří pole o této délce. Přebírá funkci mapování, kde můžete adresovat index v poli jako #index. U hluboko vnořených map můžete odkazovat na nadřazené mapy pomocí #index_n notace (#index_1, #index_2).
mapLoop(3, #index * 10) -> [10, 20, 30]
max
max(<value1> : any) => any
Získá maximální hodnotu sloupce.
max(sales)
maxIf
maxIf(<value1> : boolean, <value2> : any) => any
Získá maximální hodnotu sloupce na základě kritérií.
maxIf(region == 'West', sales)
md5
md5(<value1> : any, ...) => string
Vypočítá hodnotu hash MD5 sady sloupců různých primitivních datových typů a vrátí šestnáctkový řetězec se 32 znaky. Můžete ho použít k výpočtu otisku prstu pro řádek.
md5(5, 'gunchus', 8.2, 'bojjus', true, toDate('2010-4-4')) -> '4ce8a880bd621a1ffad0bca905e1bc5a'
mean
mean(<value1> : number) => number
Získá střední hodnotu hodnot sloupce. Stejné jako AVG.
mean(sales)
meanIf
meanIf(<value1> : boolean, <value2> : number) => number
Získá střední hodnotu hodnot sloupce na základě kritérií. Stejné jako avgIf.
meanIf(region == 'West', sales)
millisecond
millisecond(<value1> : timestamp, [<value2> : string]) => integer
Získá hodnotu milisekund daného data. Volitelně můžete předat časové pásmo ve formě GMT, PST, UTCnebo America/Cayman. Místní časové pásmo se používá jako výchozí. Dostupné formáty najdete v Java třídy SimpleDateFormat.
millisecond(toTimestamp('2009-07-30 12:58:59.871', 'yyyy-MM-dd HH:mm:ss.SSS')) -> 871
milliseconds
milliseconds(<value1> : integer) => long
Získá dobu trvání v milisekundách pro počet milisekund.
milliseconds(2) -> 2L
min
min(<value1> : any) => any
Získá minimální hodnotu sloupce.
min(sales)
minIf
minIf(<value1> : boolean, <value2> : any) => any
Získá minimální hodnotu sloupce na základě kritérií.
minIf(region == 'West', sales)
minus
minus(<value1> : any, <value2> : any) => any
Odečte čísla. Odečte počet dní od data. Odečte dobu trvání od časového razítka. Odečte dvě časová razítka, abyste získali rozdíl v milisekundách. Stejné jako operátor - .
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
Získá minutovou hodnotu časového razítka. Volitelně můžete předat časové pásmo ve formě GMT, PST, UTCnebo America/Cayman. Místní časové pásmo se používá jako výchozí. Dostupné formáty najdete v Java třídy SimpleDateFormat.
minute(toTimestamp('2009-07-30 12:58:59')) -> 58
minute(toTimestamp('2009-07-30 12:58:59'), 'PST') -> 58
minutes
minutes(<value1> : integer) => long
Získá dobu trvání v milisekundách pro počet minut.
minutes(2) -> 120000L
mlookup
mlookup(key, key2, ...) => complex[]
Vyhledá všechny odpovídající řádky z jímky uložené v mezipaměti pomocí zadaných klíčů, které odpovídají klíčům z jímky uložené v mezipaměti.
cacheSink#mlookup(movieId)
mod
mod(<value1> : any, <value2> : any) => any
Získá moduly dvojice čísel. Stejné jako operátor % .
mod(20, 8) -> 4
20 % 8 -> 4
month
month(<value1> : datetime) => integer
Získá hodnotu měsíce data nebo časového razítka.
month(toDate('2012-8-8')) -> 8
monthsBetween
monthsBetween(<from date/timestamp> : datetime, <to date/timestamp> : datetime, [<roundoff> : boolean], [<time zone> : string]) => double
Získá počet měsíců mezi dvěma daty. Výpočet můžete zaokrouhlit. Volitelně můžete předat časové pásmo ve formě GMT, PST, UTCnebo America/Cayman. Místní časové pásmo se používá jako výchozí. Dostupné formáty najdete v Java třídy SimpleDateFormat.
monthsBetween(toTimestamp('1997-02-28 10:30:00'), toDate('1996-10-30')) -> 3.94959677
multiply
multiply(<value1> : any, <value2> : any) => any
Vynásobí dvojici čísel. Stejné jako operátor * .
multiply(20, 10) -> 200
20 * 10 -> 200
N
negate
negate(<value1> : number) => number
Neguje číslo. Změní kladná čísla na záporná a naopak.
negate(13) -> -13
nextSequence
nextSequence() => long
Vrátí další jedinečnou sekvenci. Číslo je souvislé pouze v rámci oddílu a je opatřeno předponou s ID oddílu.
nextSequence() == 12313112 -> false
normalize
normalize(<String to normalize> : string) => string
Normalizuje hodnotu řetězce na samostatné zvýrazňované znaky Unicode.
regexReplace(normalize('bo²s'), `\p{M}`, '') -> 'boys'
not
not(<value1> : boolean) => boolean
Používá logický operátor negace.
not(true) -> false
not(10 == 20) -> true
notEquals
notEquals(<value1> : any, <value2> : any) => boolean
Používá relační operátor nerovná se. Stejné jako operátor != .
12 != 24 -> true
'bojjus' != 'bo' + 'jjus' -> false
nTile
nTile([<value1> : integer]) => integer
Funkce nTile rozdělí řádky každého oddílu okna do n segmentů, které se pohybují od 1 až do nejvýše n. Hodnoty kbelíku se liší nejvýše o 1. Pokud se počet řádků v oddílu rovnoměrně nerozdělí na počet kbelíků, zbývající hodnoty se rozdělí po jedné do každého kbelíku, počínaje prvním kbelíkem. Funkce nTile je užitečná pro výpočet tertiles, kvartilů, deciles a dalších běžných souhrnných statistik. Funkce vypočítá dvě proměnné během inicializace. Velikost běžného kbelíku má přidán jeden řádek navíc. Obě proměnné jsou založené na velikosti aktuálního oddílu. Během procesu výpočtu funkce sleduje aktuální číslo řádku, aktuální číslo kbelíku a číslo řádku, ve kterém se kbelík změní (bucketThreshold). Když aktuální číslo řádku dosáhne prahové hodnoty kbelíku, hodnota kbelíku se zvýší o jednu. Prahová hodnota se zvýší o velikost bucketu (plus jeden navíc, pokud je aktuální bucket doplněn).
nTile()
nTile(numOfBuckets)
null
null() => null
Vrátí hodnotu NULL.
syntax(null()) Funkci použijte, pokud je sloupec pojmenován null. Každá operace, která používá hodnotu null, vede k hodnotě 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
Používá logický OR operátor. Stejné jako ||.
or(true, false) -> true
true || false -> true
originColumns
originColumns(<streamName> : string) => any
Získá všechny výstupní sloupce pro původní datový proud, ve kterém byly sloupce vytvořeny. Musí být uzavřeno v rámci jiné funkce.
array(toString(originColumns('source1')))
output
output() => any
Vrátí první řádek výsledků výstupu mezipaměti.
cacheSink#output()
outputs
output() => any
Vrátí celou sadu výstupních řádků výsledků z úložiště mezipaměti.
cacheSink#outputs()
P
partitionId
partitionId() => integer
Vrátí aktuální ID oddílu, ve které je vstupní řádek.
partitionId()
pMod
pMod(<value1> : any, <value2> : any) => any
Poskytuje kladné moduly dvojice čísel.
pmod(-20, 8) -> 4
power
power(<value1> : number, <value2> : number) => double
Zvýší jedno číslo na mocninu druhého.
power(10, 2) -> 100
R
radians
radians(<value1> : number) => double
Převede stupně na radiány.
radians(180) => 3.141592653589793
random
random(<value1> : integral) => double
Vrátí náhodné číslo při zadaném semenu v rámci sekce. Semeno by mělo být pevnou hodnotou a používá se s ID oddílu k generování náhodných hodnot v rozsahu (0.0-1.0).
random(1) == 1 -> false
rank
rank() => integer
Vypočítá pořadí hodnoty ve skupině hodnot specifikovaných v klauzuli ORDER BY v rámci okna. Výsledkem je jedna plus počet řádků, které předcházejí aktuálnímu řádku, nebo jsou mu rovné v pořadí oddílu. Hodnoty vytvářejí mezery v sekvenci. Funkce rank funguje i v případě, že data nejsou seřazená a hledají změny hodnot.
rank()
reassociate
reassociate(<value1> : map, <value2> : binaryFunction) => map
Transformuje mapu přidružením klíčů k novým hodnotám. Přebírá funkci mapování, kde můžete přistupovat k položce jako #key a aktuální hodnotu jako #value.
reassociate(['fruit' -> 'apple', 'vegetable' -> 'tomato'], substring(#key, 1, 1) + substring(#value, 1, 1)) => ['fruit' -> 'fa', 'vegetable' -> 'vt']
reduce
reduce(<value1> : array, <value2> : any, <value3> : binaryfunction, <value4> : unaryfunction) => any
Shromažďuje prvky v poli. Funkce reduce očekává odkaz na akumulátor a jeden prvek v první funkci výrazu jako #acc a #item. Očekává se, že výsledná hodnota jako #result bude použita ve druhé funkci výrazu.
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
Extrahuje odpovídající podřetězec pro daný vzor regulárního výrazu. Poslední parametr identifikuje skupinu shody a v případě vynechání se použije výchozí hodnota 1. Slouží <regex> k porovnávání řetězce bez odvozování. Index 0 vrátí všechny shody. Bez odpovídajících skupin nevrací index 1 ani výše žádný výsledek.
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
Zkontroluje, jestli řetězec odpovídá danému vzoru regulárního výrazu. Slouží <regex> k porovnávání řetězce bez odvozování.
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
Nahradí všechny výskyty vzoru regulárního výrazu jiným podřetězcem v konkrétním řetězci. Slouží <regex> k porovnávání řetězce bez odvozování.
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
Rozdělí řetězec pomocí oddělovače podle regulárního výrazu a vrátí pole řetězců.
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
Nahradí všechny výskyty podřetězce jiným podřetězcem v konkrétním řetězci. Pokud je poslední parametr vynechán, výchozí hodnota je prázdný řetězec.
replace('doggie dog', 'dog', 'cat') -> 'catgie cat'
replace('doggie dog', 'dog', '') -> 'gie '
replace('doggie dog', 'dog') -> 'gie '
reverse
reverse(<value1> : string) => string
Převrátí řetězec.
reverse('gunchus') -> 'suhcnug'
right
right(<string to subset> : string, <number of characters> : integral) => string
Extrahuje podřetězec o určitém počtu znaků zprava. Stejné jako SUBSTRING(str, LENGTH(str) - n, n).
right('bojjus', 2) -> 'us'
right('bojjus', 20) -> 'bojjus'
rlike
rlike(<string> : string, <pattern match> : string) => boolean
Zkontroluje, jestli řetězec odpovídá danému vzoru regulárního výrazu.
rlike('200.50', `(\d+).(\d+)`) -> true
rlike('bogus', `M[0-9]+.*`) -> false
round
round(<number> : number, [<scale to round> : number], [<rounding option> : integral]) => double
Zaokrouhlí číslo, pokud zadáte volitelné měřítko a volitelný režim zaokrouhlování. Pokud je měřítko vynecháno, výchozí hodnota je 0. Pokud je režim vynechán, výchozí hodnota je ROUND_HALF_UP(5). Mezi hodnoty zaokrouhlení patří:
ROUND_UP: Režim zaokrouhlování, který zaokrouhluje od nuly.
ROUND_DOWN: Režim zaokrouhlování směrem k nule.
ROUND_CEILING: Režim zaokrouhlování směrem ke kladnému nekonečnu. (Stejné jako ROUND_UP v případě, že vstup je kladný. Pokud je negativní, chová se jako ROUND_DOWN. Například -1.1 by byl -1.0 s ROUND_CEILING a -2 s ROUND_UP.)
ROUND_FLOOR: Režim zaokrouhlování směrem k zápornému nekonečnu. (Stejné jako ROUND_DOWN v případě, že vstup je kladný. Pokud je negativní, chová se jako ROUND_UP.)
ROUND_HALF_UP: Režim zaokrouhlování směrem k "nejbližšímu sousedovi", pokud oba sousedé nejsou stejně vzdálení, v takovém případě se chová jako ROUND_UP. (Nejběžnější + výchozí pro tok dat.)
ROUND_HALF_DOWN: Režim zaokrouhlování směrem k "nejbližšímu sousedovi", pokud jsou oba sousedé stejně vzdálení, v takovém případě ROUND_DOWN.
ROUND_HALF_EVEN: Režim zaokrouhlování směrem k nejbližšímu sousedovi, pokud oba sousedé nejsou rovno vzdálení, v takovém případě zaokrouhlení směrem k sudému sousedovi.
ROUND_UNNECESSARY: Režim zaokrouhlování, aby se potvrdilo, že operace zaokrouhlování má přesný výsledek, takže není nutné zaokrouhlovat.
round(100.123) -> 100.0
round(2.5, 0) -> 3.0
round(5.3999999999999995, 2, 7) -> 5.40
rowNumber
rowNumber() => integer
Přiřadí sekvenční číslování řádků pro řádky v okně začínajícím číslem 1.
rowNumber()
rpad
rpad(<string to pad> : string, <final padded length> : integral, <padding> : string) => string
Doplní řetězec napravo zadaným odsazením, dokud řetězec nedosáhne určité délky. Pokud je řetězec roven nebo větší než zadaná délka, řetězec se ořízne na tuto délku.
rpad('dumbo', 10, '-') -> 'dumbo-----'
rpad('dumbo', 4, '-') -> 'dumb'
rpad('dumbo', 8, '<>') -> 'dumbo<><'
rtrim
rtrim(<string to trim> : string, [<trim characters> : string]) => string
Pravá strana ořízne řetězec od koncových znaků. Pokud druhý parametr není zadaný, oříznou se prázdné znaky. Jinak ořízne všechny znaky určené v druhém parametru.
rtrim(' dumbo ') -> ' dumbo'
rtrim('!--!du!mbo!', '-!') -> '!--!du!mbo'
S
second
second(<value1> : timestamp, [<value2> : string]) => integer
Získá druhou hodnotu data. Volitelně můžete předat časové pásmo ve formě GMT, PST, UTCnebo America/Cayman. Místní časové pásmo se používá jako výchozí. Dostupné formáty najdete v Java třídy SimpleDateFormat.
second(toTimestamp('2009-07-30 12:58:59')) -> 59
seconds
seconds(<value1> : integer) => long
Udává dobu trvání v milisekundách pro počet sekund.
seconds(2) -> 2000L
setBitSet
setBitSet (<value1>: array, <value2>:array) => array
Nastaví pozice bitů v této bitové sadě.
setBitSet(toBitSet([10, 32]), [98]) => [4294968320L, 17179869184L]
sha1
sha1(<value1> : any, ...) => string
Vypočítá SHA-1 hash pro sadu sloupců s různými primitivními datovými typy a vrátí šestnáctkový řetězec o 40 znacích. Můžete ho použít k výpočtu otisku prstu pro řádek.
sha1(5, 'gunchus', 8.2, 'bojjus', true, toDate('2010-4-4')) -> '46d3b478e8ec4e1f3b453ac3d8e59d5854e282bb'
sha2
sha2(<value1> : integer, <value2> : any, ...) => string
Vypočítá otisk SHA-2 pro sadu sloupců různých primitivních datových typů při zadání bitové délky, která může být pouze z hodnot 0(256), 224, 256, 384 a 512. Můžete ho použít k výpočtu otisku prstu pro řádek.
sha2(256, 'gunchus', 8.2, 'bojjus', true, toDate('2010-4-4')) -> 'afe8a553b1761c67d76f8c31ceef7f71b66a1ee6f4e6d3b5478bf68b47d06bd3'
sin
sin(<value1> : number) => double
Vypočítá sinusovou hodnotu.
sin(2) -> 0.9092974268256817
sinh
sinh(<value1> : number) => double
Vypočítá hodnotu hyperbolického sinu.
sinh(0) -> 0.0
size
size(<value1> : any) => integer
Najde velikost pole nebo typu mapy.
size(['element1', 'element2']) -> 2
size([1,2,3]) -> 3
skewness
skewness(<value1> : number) => double
Získá nerovnoměrnou distribuci sloupce.
skewness(sales)
skewnessIf
skewnessIf(<value1> : boolean, <value2> : number) => double
Získá nerovnoměrnou distribuci sloupce na základě kritérií.
skewnessIf(region == 'West', sales)
slice
slice(<array to slice> : array, <from 1-based index> : integral, [<number of items> : integral]) => array
Extrahuje podmnožinu pole od dané pozice. Pozice je založená na 1. Pokud je délka vynechána, nastaví se na konec řetězce.
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
Seřadí pole pomocí zadané predikátové funkce. Funkce sort očekává odkaz na dva po sobě jdoucí prvky ve funkci výrazu jako #item1 a #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
Získává kód pro řetězec soundex.
soundex('genius') -> 'G520'
split
split(<string to split> : string, <split characters> : string) => array
Rozdělí řetězec na základě oddělovače a vrátí pole řetězců.
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
Vypočítá druhou odmocninu čísla.
sqrt(9) -> 3
startsWith
startsWith(<string> : string, <substring to check> : string) => boolean
Zkontroluje, jestli řetězec začíná zadaným řetězcem.
startsWith('dumbo', 'du') -> true
stddev
stddev(<value1> : number) => double
Získá směrodatnou odchylku sloupce dat.
stdDev(sales)
stddevIf
stddevIf(<value1> : boolean, <value2> : number) => double
Získá směrodatnou odchylku sloupce na základě kritérií.
stddevIf(region == 'West', sales)
stddevPopulation
stddevPopulation(<value1> : number) => double
Získá směrodatnou odchylku populace pro sloupec.
stddevPopulation(sales)
stddevPopulationIf
stddevPopulationIf(<value1> : boolean, <value2> : number) => double
Vypočítá směrodatnou odchylku populace sloupce na základě specifikovaných kritérií.
stddevPopulationIf(region == 'West', sales)
stddevSample
stddevSample(<value1> : number) => double
Získá vzorovou směrodatnou odchylku sloupce.
stddevSample(sales)
stddevSampleIf
stddevSampleIf(<value1> : boolean, <value2> : number) => double
Získá směrodatnou odchylku vzorku sloupce na základě kritérií.
stddevSampleIf(region == 'West', sales)
subDays
subDays(<date/timestamp> : datetime, <days to subtract> : integral) => datetime
Odečte dny od data nebo časového razítka. Stejný operátor jako - pro datum.
subDays(toDate('2016-08-08'), 1) -> toDate('2016-08-07')
subMonths
subMonths(<date/timestamp> : datetime, <months to subtract> : integral) => datetime
Odečte měsíce od data nebo časového razítka.
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
Extrahuje podřetězec určité délky z pozice. Pozice je založená na 1. Pokud je délka vynechána, nastaví se na konec řetězce.
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(
<řetězec k podmnožině><oddělovač>substringIndex( : string, : string, <počet výskytů oddělovače> : celé číslo]) => řetězec
Extrahuje podřetězec před stanoveným počtem výskytů oddělovače. Pokud je počet kladný, vrátí se vše vlevo od konečného oddělovače (počítá se zleva). Pokud je počet záporný, vrátí se vše napravo od konečného oddělovače (počítá se zprava).
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
Získá agregovaný součet číselného sloupce.
sum(col)
sumDistinct
sumDistinct(<value1> : number) => number
Získá agregovaný součet jedinečných hodnot číselného sloupce.
sumDistinct(col)
sumDistinctIf
sumDistinctIf(<value1> : boolean, <value2> : number) => number
Získá agregovaný součet číselného sloupce na základě kritérií. Podmínka může být založená na libovolném sloupci.
sumDistinctIf(state == 'CA' && commission < 10000, sales)
sumDistinctIf(true, sales)
sumIf
sumIf(<value1> : boolean, <value2> : number) => number
Získá agregovaný součet číselného sloupce na základě kritérií. Podmínka může být založená na libovolném sloupci.
sumIf(state == 'CA' && commission < 10000, sales)
sumIf(true, sales)
T
tan
tan(<value1> : number) => double
Vypočítá hodnotu tangensu.
tan(0) -> 0.0
tanh
tanh(<value1> : number) => double
Vypočítá hyperbolickou tangensovou hodnotu.
tanh(0) -> 0.0
toBase64
toBase64(<value1> : string, <encoding type> : string]) => string
Kóduje konkrétní řetězec v base64. Volitelně můžete předat typ kódování.
toBase64('bojjus') -> 'Ym9qanVz'
toBase64('± 25000, € 5.000,- |', 'Windows-1252') -> 'sSAyNTAwMCwggCA1LjAwMCwtIHw='
toBinary
toBinary(<value1> : any) => binary
Převede libovolné číselné číslo, datum, časové razítko nebo řetězec na binární reprezentaci.
toBinary(3) -> [0x11]
toBoolean
toBoolean(<value1> : string) => boolean
Převede hodnotu (t, , true, y, yes1) na hodnotu true a (f, false, , n, no0) na false a NULL pro jakoukoli jinou hodnotu.
toBoolean('true') -> true
toBoolean('n') -> false
isNull(toBoolean('truthy')) -> true
toByte
toByte(<value> : any, [<format> : string], [<locale> : string]) => byte
Převede libovolnou číselnou hodnotu nebo řetězec na bajtovou hodnotu. Pro převod můžete použít volitelný Java desetinný formát.
toByte(123)
123
toByte(0xFF)
-1
toByte('123')
123
toDate
toDate(<string> : any, [<date format> : string]) => date
Převede vstupní řetězec data na datum pomocí volitelného vstupního formátu data. Dostupné formáty najdete v Java třídy SimpleDateFormat. Pokud je vynechán vstupní formát data, je výchozí formát yyyy-[M]M-[d]d. Přijaté formáty jsou :[ 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)
Převede libovolnou číselnou nebo řetězcovou hodnotu na desetinnou hodnotu. Pokud není zadána přesnost a měřítko, výchozí hodnota je (10,2). Pro převod můžete použít volitelný Java desetinný formát. Použijte volitelný formát národního prostředí ve formě jazyka BCP47, jako je en-US, de nebo 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
Převede libovolnou číselnou hodnotu nebo řetězec na dvojitou hodnotu. Pro převod můžete použít volitelný Java desetinný formát. Použijte volitelný formát národního prostředí ve formě jazyka BCP47, jako je en-US, de nebo 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
Převede libovolnou číselnou hodnotu nebo řetězec na datový typ float. Pro převod můžete použít volitelný Java desetinný formát. Zkrátí všechny dvojité.
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
Převede libovolnou číselnou hodnotu nebo řetězec na celočíselnou hodnotu. Pro převod můžete použít volitelný Java desetinný formát. Zkrátí všechny dlouhé, plovoucí, dvojité.
toInteger(123) -> 123
toInteger('123') -> 123
toInteger('$123', '$###') -> 123
toLong
toLong(<value> : any, [<format> : string], [<locale> : string]) => long
Převede libovolnou číselnou nebo řetězcovou hodnotu na dlouhou hodnotu. Pro převod můžete použít volitelný Java desetinný formát. Zkrátí všechny plovoucí, dvojité.
toLong(123) -> 123
toLong('123') -> 123
toLong('$123', '$###') -> 123
topN
topN(<column/expression> : any, <count> : long, <n> : integer) => array
Získá nejvyšší N hodnoty pro tento sloupec na základě argumentu count.
topN(custId, count, 5)
topN(productId, num_sales, 10)
toShort
toShort(<value> : any, [<format> : string], [<locale> : string]) => short
Převede libovolnou číselnou nebo řetězcovou hodnotu na krátkou hodnotu. Pro převod můžete použít volitelný Java desetinný formát. Zkrátí libovolný int, long, float, double.
toShort(123) -> 123
toShort('123') -> 123
toShort('$123', '$###') -> 123
toString
toString(<value> : any, [<number format/date format> : string], [<date locale> : string]) => string
Převede primitivní datový typ na řetězec. Můžete zadat formát pro čísla a datum. Pokud není zadáno, vybere se výchozí nastavení systému. Java desetinný formát se používá pro čísla. Dostupné formáty najdete v Java třídy SimpleDateFormat. Výchozí formát je yyyy-MM-dd. Pro datum nebo časové razítko můžete volitelně zadat jazykovou lokalizaci.
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
Převede řetězec na časové razítko při zadání volitelného formátu časového razítka. Pokud je časové razítko vynecháno, použije se výchozí vzor yyyy-[M]M-[d]d hh:mm:ss[.f...] . Volitelně můžete předat časové pásmo ve formě GMT, PST, UTCnebo America/Cayman. Funkce timestamp podporuje až milisekundovou přesnost s hodnotou 999. Dostupné formáty najdete v Java třídy SimpleDateFormat.
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
Převede časové razítko na UTC. Volitelně můžete předat časové pásmo ve formě GMT, PST, UTCnebo America/Cayman. Výchozí hodnota je aktuální časové pásmo. Dostupné formáty najdete v Java třídy SimpleDateFormat.
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
Nahraďte jednu sadu znaků jinou sadou znaků v řetězci. Znaky mají jednu až jednu náhradu.
translate('(bojjus)', '()', '[]') -> '[bojjus]'
translate('(gunchus)', '()', '[') -> '[gunchus'
trim
trim(<string to trim> : string, [<trim characters> : string]) => string
Ořízne řetězec o počáteční a koncové znaky. Pokud druhý parametr není zadaný, oříznou se prázdné znaky. Jinak ořízne všechny znaky určené v druhém parametru.
trim(' dumbo ') -> 'dumbo'
trim('!--!du!mbo!', '-!') -> 'dumbo'
true
true() => boolean
Vždy vrátí hodnotu true.
syntax(true()) Funkci použijte, pokud je sloupec pojmenován true.
(10 + 20 == 30) -> true
(10 + 20 == 30) -> true()
typeMatch
typeMatch(<type> : string, <base type> : string) => boolean
Odpovídá typu sloupce. Můžete ho použít jenom ve vzorových výrazech. Funkce number odpovídá krátkému, celočíselnému, dlouhému, dvojitému, plovoucímu nebo desetinnému. Funkce integral odpovídá typům short, int, long. Funkce fractional odpovídá typům double, float a decimal. Funkce datetime odpovídá typu data nebo časového razítka.
typeMatch(type, 'number')
typeMatch('date', 'datetime')
U
unescape
unescape(<string_to_escape> : string, <format> : string) => string
Rozbalí řetězec podle formátu. Literální hodnoty pro přijatelné formáty jsou json, xml, ecmascript, html, a java.
unescape('{\\\\\"value\\\\\": 10}', 'json')
'{\\\"value\\\": 10}'
unfold
unfold (<value1>: array) => any
Rozkládá pole do sady řádků a v každém řádku zopakuje hodnoty pro zbývající sloupce.
unfold(addresses) => any
unfold( @(name = salesPerson, sales = salesAmount) ) => any
unhex
unhex(<value1>: string) => binary
Převede binární hodnotu z jejího šesticového řetězcového zápisu. Můžete ho použít s sha2a md5 převést z řetězce na binární reprezentaci.
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
Vrátí sjednocenou množinu unikátních položek ze dvou polí.
union([10, 20, 30], [20, 40]) => [10, 20, 30, 40]
upper
upper(<value1> : string) => string
Velká písmena řetězce.
upper('bojjus') -> 'BOJJUS'
uuid
uuid() => string
Vrátí vygenerované UUID.
uuid()
V
variance
variance(<value1> : number) => double
Získá rozptyl sloupce.
variance(sales)
varianceIf
varianceIf(<value1> : boolean, <value2> : number) => double
Získá rozptyl sloupce na základě kritérií.
varianceIf(region == 'West', sales)
variancePopulation
variancePopulation(<value1> : number) => double
Získá populační rozptyl sloupce.
variancePopulation(sales)
variancePopulationIf
variancePopulationIf(<value1> : boolean, <value2> : number) => double
Získá rozptyl populace sloupce na základě kritérií.
variancePopulationIf(region == 'West', sales)
varianceSample
varianceSample(<value1> : number) => double
Získá nezaujatý rozptyl sloupce.
varianceSample(sales)
varianceSampleIf
varianceSampleIf(<value1> : boolean, <value2> : number) => double
Získá nestrannou odchylku sloupce na základě kritérií.
varianceSampleIf(region == 'West', sales)
W
weekOfYear
weekOfYear(<value1> : datetime) => integer
Získá týden roku při zadání data.
weekOfYear(toDate('2008-02-20')) -> 8
weeks
weeks(<value1> : integer) => long
Získá dobu trvání v milisekundách pro počet týdnů.
weeks(2) -> 1209600000L
X
xor
xor(<value1> : boolean, <value2> : boolean) => boolean
Používá logický XOR operátor. Stejné jako operátor ^ .
xor(true, false) -> true
xor(true, true) -> false
true ^ false -> true
Y
year
year(<value1> : datetime) => integer
Získá hodnotu roku kalendářního data.
year(toDate('2012-8-8')) -> 2012
Související obsah
- Seznam všech agregačních funkcí
- Seznam všech polových funkcí
- Seznam všech vyhledávacích funkcí uložených v mezipaměti
- Seznam všech funkcí převodu
- Seznam všech funkcí data a času
- Seznam všech funkcí výrazů.
- Seznam všech mapových funkcí
- Seznam všech metafunkcí
- Seznam všech funkcí okna
- Naučte se používat Tvůrce výrazů.