Uso de expresiones de transformación de datos en los flujos de datos de asignación
SE APLICA A: Azure Data Factory Azure Synapse Analytics
Sugerencia
Pruebe Data Factory en Microsoft Fabric, una solución de análisis todo en uno para empresas. Microsoft Fabric abarca todo, desde el movimiento de datos hasta la ciencia de datos, el análisis en tiempo real, la inteligencia empresarial y los informes. Obtenga información sobre cómo iniciar una nueva evaluación gratuita.
Los flujos de datos están disponibles en las canalizaciones Azure Data Factory y Azure Synapse. Este artículo se aplica a los flujos de datos de asignación. Si carece de experiencia con las transformaciones, consulte el artículo de introducción Transformación de datos mediante flujos de datos de asignación.
En los siguientes artículos se proporcionan detalles sobre el uso de todas las funciones de expresiones compatibles con Azure Data Factory y Azure Synapse Analytics en los flujos de datos de asignación. Para obtener resúmenes de cada tipo de función admitida, haga referencia a los siguientes artículos:
- Funciones de agregado
- Funciones de matriz
- Funciones de búsqueda almacenadas en caché
- Funciones de conversión
- Funciones de fecha y hora
- Funciones de expresiones
- Funciones de asignación
- Metafunciones
- Funciones de ventana
Lista alfabética de todas las funciones
A continuación, se muestra una lista alfabética de todas las funciones disponibles en los flujos de datos de asignación.
A
abs
abs(<value1> : number) => number
El valor absoluto de un número.
abs(-20) -> 20
abs(10) -> 10
acos
acos(<value1> : number) => double
Calcula un valor inverso de coseno.
acos(1) -> 0.0
add
add(<value1> : any, <value2> : any) => any
Agrega un par de cadenas o números. Agrega una fecha a muchos días. Agrega una vigencia a una marca de tiempo. Anexa una matriz de tipo similar a otra. Igual que el operador +.
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
Agrega días a una fecha o marca de tiempo. Igual que el operador + para la fecha.
addDays(toDate('2016-08-08'), 1) -> toDate('2016-08-09')
addMonths
addMonths(<date/timestamp> : datetime, <months to add> : integral, [<value3> : string]) => datetime
Suma meses a una fecha o marca de tiempo. Opcionalmente, puede pasar una zona horaria.
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
Operador lógico AND. Igual que &&.
and(true, false) -> false
true && false -> false
approxDistinctCount
approxDistinctCount(<value1> : any, [ <value2> : double ]) => long
Obtiene el recuento agregado aproximado de valores distintos para una columna. El segundo parámetro opcional es controlar el error de estimación.
approxDistinctCount(ProductID, .05) => long
array
array([<value1> : any], ...) => array
Crea una matriz de elementos. Todos los elementos deben ser del mismo tipo. Si no se especifica ningún elemento, una matriz de cadenas vacías es el valor predeterminado. Igual que un operador de creación [].
array('Seattle', 'Washington')
['Seattle', 'Washington']
['Seattle', 'Washington'][1]
'Washington'
ascii
ascii(<Input> : string) => number
Devuelve el valor numérico del carácter de entrada. Si la cadena de entrada tiene más de un carácter, se devuelve el valor numérico del primer carácter.
ascii('A') -> 65
ascii('a') -> 97
asin
asin(<value1> : number) => double
Calcula un valor inverso de seno.
asin(0) -> 0.0
assertErrorMessages
assertErrorMessages() => map
Devuelve un mapa de todos los mensajes de error de la fila con el identificador de aserción como clave.
Ejemplos
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
Crea una asignación de clave/valores. Todas las claves y valores deben ser del mismo tipo. Si no se especifica ningún elemento, el valor predeterminado es una asignación de cadena a tipo de cadena. Igual que un operador de creación [ -> ]
. Las claves y los valores deben alternarse.
associate('fruit', 'apple', 'vegetable', 'carrot' )=> ['fruit' -> 'apple', 'vegetable' -> 'carrot']
at
at(<value1> : array/map, <value2> : integer/key type) => array
Busca el elemento en un índice de matrices. El índice es de base 1. El índice fuera de los límites da como resultado un valor NULL. Busca un valor en una asignación dada una clave. Si no se encuentra la clave, devuelve null.
at(['apples', 'pears'], 1) => 'apples'
at(['fruit' -> 'apples', 'vegetable' -> 'carrot'], 'fruit') => 'apples'
atan
atan(<value1> : number) => double
Calcula un valor inverso de tangente.
atan(0) -> 0.0
atan2
atan2(<value1> : number, <value2> : number) => double
Devuelve el ángulo en radianes entre el eje X positivo de un plano y el punto que especificaron las coordenadas.
atan2(0, 0) -> 0.0
avg
avg(<value1> : number) => number
Obtiene el promedio de valores de una columna.
avg(sales)
avgIf
avgIf(<value1> : boolean, <value2> : number) => number
En función de los criterios, obtiene el promedio de valores de una columna.
avgIf(region == 'West', sales)
B
between
between(<value1> : any, <value2> : any, <value3> : any) => boolean
Comprueba si el primer valor se encuentra entre otros dos valores, ambos inclusive. Se pueden comparar valores numéricos, de cadena y de fecha y hora
between(10, 5, 24)
true
between(currentDate(), currentDate() + 10, currentDate() + 20)
false
bitwiseAnd
bitwiseAnd(<value1> : integral, <value2> : integral) => integral
Operador AND bit a bit entre tipos enteros. Igual que el operador &
bitwiseAnd(0xf4, 0xef)
0xe4
(0xf4 & 0xef)
0xe4
bitwiseOr
bitwiseOr(<value1> : integral, <value2> : integral) => integral
Operador OR bit a bit entre tipos enteros. Igual que el operador |
bitwiseOr(0xf4, 0xef)
0xff
(0xf4 | 0xef)
0xff
bitwiseXor
bitwiseXor(<value1> : any, <value2> : any) => any
Operador OR bit a bit entre tipos enteros. Igual que el operador |
bitwiseXor(0xf4, 0xef)
0x1b
(0xf4 ^ 0xef)
0x1b
(true ^ false)
true
(true ^ true)
false
blake2b
blake2b(<value1> : integer, <value2> : any, ...) => string
Calcula la síntesis del mensaje Blake2 del conjunto de columnas de diferentes tipos de datos primitivos dada una longitud en bits, que solo pueden ser múltiplos de 8 entre 8 y 512. Se puede usar para calcular una huella digital de una fila.
blake2b(256, 'gunchus', 8.2, 'bojjus', true, toDate('2010-4-4'))
'c9521a5080d8da30dffb430c50ce253c345cc4c4effc315dab2162dac974711d'
blake2bBinary
blake2bBinary(<value1> : integer, <value2> : any, ...) => binary
Calcula la síntesis del mensaje Blake2 del conjunto de columnas de diferentes tipos de datos primitivos dada una longitud en bits, que solo pueden ser múltiplos de 8 entre 8 y 512. Se puede usar para calcular una huella digital de una fila.
blake2bBinary(256, 'gunchus', 8.2, 'bojjus', true, toDate('2010-4-4'))
unHex('c9521a5080d8da30dffb430c50ce253c345cc4c4effc315dab2162dac974711d')
byItem
byItem(<parent column> : any, <column name> : string) => any
Busque un subelemento dentro de una estructura o matriz de estructura. Si hay varias coincidencias, se devuelve la primera. Si no hay coincidencias, se devuelve un valor NULL. El valor devuelto debe ser convertido por una de las acciones de conversión de tipo (? date, ? string ...). Simplemente los nombres de columna de dirección conocidos en tiempo de diseño por su nombre. No se admiten entradas calculadas, pero se pueden usar sustituciones de parámetros.
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
Selecciona un valor de columna por el nombre en la secuencia. Puede pasar un nombre de secuencia opcional como segundo argumento. Si hay varias coincidencias, se devuelve la primera. Si no hay coincidencias, se devuelve un valor NULL. El tipo del valor devuelto debe haberse convertido mediante una de las funciones de conversión de tipo (TO_DATE, TO_STRING...). Simplemente los nombres de columna de dirección conocidos en tiempo de diseño por su nombre. No se admiten entradas calculadas, pero se pueden usar sustituciones de parámetros.
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
Seleccione una matriz de columnas por nombre en la secuencia. Puede pasar un nombre de secuencia opcional como segundo argumento. Si hay varias coincidencias, se devuelve la primera. Si no hay ninguna coincidencia para una columna, la salida completa es un valor NULL. El valor devuelto requiere una función de conversión de tipos (toDate, toString, ...). Simplemente los nombres de columna de dirección conocidos en tiempo de diseño por su nombre. No se admiten entradas calculadas, pero se pueden usar sustituciones de parámetros.
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
Selecciona un valor de columna en función del nombre de la secuencia de origen. El segundo argumento es el nombre de la secuencia de origen. Si hay varias coincidencias, se devuelve la primera. Si no hay coincidencias, se devuelve un valor NULL. El tipo del valor devuelto debe haberse convertido mediante una de las funciones de conversión de tipo (TO_DATE, TO_STRING...). Simplemente los nombres de columna de dirección conocidos en tiempo de diseño por su nombre. No se admiten entradas calculadas, pero se pueden usar sustituciones de parámetros.
toString(byOrigin('ancestor', 'ancestorStream'))
byOrigins
byOrigins(<column names> : array, [<origin stream name> : string]) => any
Selecciona una matriz de columnas en función del nombre en la secuencia. El segundo argumento es la secuencia desde la que se originó. Si hay varias coincidencias, se devuelve la primera. Si no hay coincidencias, se devuelve un valor NULL. El tipo del valor devuelto debe haberse convertido mediante una de las funciones de conversión de tipo (TO_DATE, TO_STRING...). Simplemente los nombres de columna de dirección conocidos en tiempo de diseño por su nombre. No se admiten entradas calculadas, pero se pueden usar sustituciones de parámetros.
toString(byOrigins(['ancestor1', 'ancestor2'], 'ancestorStream'))
byPath
byPath(<value1> : string, [<streamName> : string]) => any
Busca una ruta de acceso jerárquica por nombre en la secuencia. Puede pasar un nombre de secuencia opcional como segundo argumento. Si no se encuentra ninguna ruta de acceso, devuelve el valor NULL. Los nombres de columna o las rutas de acceso que se conocen en tiempo de diseño deben usarse solo mediante su nombre o mediante la ruta de acceso de la notación de puntos. No se admiten entradas calculadas, pero se pueden usar sustituciones de parámetros.
byPath('grandpa.parent.child') => column
byPosition
byPosition(<position> : integer) => any
Selecciona un valor de columna por su posición relativa (de base 1) en la secuencia. Si la posición está fuera de los límites, devuelve un valor NULL. El tipo del valor devuelto debe haberse convertido mediante una de las funciones de conversión de tipo (TO_DATE, TO_STRING...). No se admiten entradas calculadas, pero se pueden usar sustituciones de parámetros.
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
Basándose en una condición alternativa, aplica un valor o el otro. Si el número de entradas es par, el otro se establece de manera predeterminada en NULL para la última condición.
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
Calcula la raíz cúbica de un número.
cbrt(8) -> 2.0
ceil
ceil(<value1> : number) => number
Devuelve el entero más pequeño no menor que el número.
ceil(-0.1) -> 0
char
char(<Input> : number) => string
Devuelve el carácter ASCII representado por el número de entrada. Si el número es mayor que 256, el resultado es equivalente a char(número % 256)
char(65) -> 'A'
char(97) -> 'a'
coalesce
coalesce(<value1> : any, ...) => any
Devuelve el primer valor no NULL de un conjunto de entradas. Todas las entradas deben ser del mismo tipo.
coalesce(10, 20) -> 10
coalesce(toString(null), toString(null), 'dumbo', 'bo', 'go') -> 'dumbo'
collect
collect(<value1> : any) => array
Recopila todos los valores de la expresión del grupo agregado en una matriz. Las estructuras se pueden recopilar y transformar en estructuras alternativas durante este proceso. El número de elementos es igual al número de filas de ese grupo y puede contener valores NULL. El número de elementos recopilados debe ser pequeño.
collect(salesPerson)
collect(firstName + lastName))
collect(@(name = salesPerson, sales = salesAmount) )
collectUnique
collectUnique(<value1> : any) => array
Recopila todos los valores de la expresión del grupo agregado en una matriz única. Las estructuras se pueden recopilar y transformar en estructuras alternativas durante este proceso. El número de elementos es igual al número de filas de ese grupo y puede contener valores NULL. El número de elementos recopilados debe ser pequeño.
collect(salesPerson)
collect(firstName + lastName))
collect(@(name = salesPerson, sales = salesAmount) )
columnNames
columnNames(<value1>
columnNames( : string, i><value1> : boolean) => array
Obtiene los nombres de todas las columnas de salida de una secuencia. Puede pasar un nombre de secuencia opcional como primer argumento. El segundo argumento también es opcional, con false como valor predeterminado. Si establece el segundo argumento en true()
, Data Factory devuelve solo las columnas que se desfasan a través del desfase de esquema.
columnNames()
columnNames('DeriveStream')
columnNames('DeriveStream', true())
columnNames('', true())
columns
columns([<stream name> : string]) => any
Obtiene los valores de todas las columnas de salida de una secuencia. Puede pasar un nombre de secuencia opcional como segundo argumento.
columns()
columns('DeriveStream')
compare
compare(<value1> : any, <value2> : any) => integer
Compara dos valores del mismo tipo. Devuelve un entero negativo si value1 < value2, 0 si value1 == value2 o un valor positivo si value1 > value2.
(compare(12, 24) < 1) -> true
(compare('dumbo', 'dum') > 0) -> true
concat
concat(<this> : string, <that> : string, ...) => string
Concatena un número variable de cadenas. Igual que el operador + con cadenas.
concat('dataflow', 'is', 'awesome') -> 'dataflowisawesome'
'dataflow' + 'is' + 'awesome' -> 'dataflowisawesome'
isNull('sql' + null) -> true
concatWS
concatWS(<separator> : string, <this> : string, <that> : string, ...) => string
Concatena un número variable de cadenas con un separador. El primer parámetro es el separador.
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
Devuelve true si algún elemento de la matriz proporcionada se evalúa como true en el predicado proporcionado. "Contains" espera una referencia a un elemento de la función de predicado como #item.
contains([1, 2, 3, 4], #item == 3) -> true
contains([1, 2, 3, 4], #item > 5) -> false
cos
cos(<value1> : number) => double
Calcula un valor de coseno.
cos(10) -> -0.8390715290764524
cosh
cosh(<value1> : number) => double
Calcula un coseno hiperbólico de un valor.
cosh(0) -> 1.0
count
count([<value1> : any]) => long
Obtiene el recuento agregado de valores. Si se especifican una o varias columnas opcionales, omite los valores NULL en el recuento.
count(custId)
count(custId, custName)
count()
count(iif(isNull(custId), 1, NULL))
countAll
countAll([<value1> : any]) => long
Obtiene el recuento agregado de valores, incluidos los valores NULL.
countAll(custId)
countAll()
countDistinct
countDistinct(<value1> : any, [<value2> : any], ...) => long
Obtiene el recuento agregado de valores distintos de un conjunto de columnas.
countDistinct(custId, custName)
countAllDistinct
countAllDistinct(<value1> : any, [<value2> : any], ...) => long
Obtiene el recuento agregado de valores distintos de un conjunto de columnas, incluidos los valores NULL.
countAllDistinct(custId, custName)
countIf
countIf(<value1> : boolean, [<value2> : any]) => long
En función de los criterios, obtiene el recuento agregado de valores. Si se especifica la columna opcional, omite los valores NULL en el recuento.
countIf(state == 'CA' && commission < 10000, name)
covariancePopulation
covariancePopulation(<value1> : number, <value2> : number) => double
Obtiene la covarianza de la población entre dos columnas.
covariancePopulation(sales, profit)
covariancePopulationIf
covariancePopulationIf(<value1> : boolean, <value2> : number, <value3> : number) => double
En función de los criterios, obtiene la covarianza de la población de dos columnas.
covariancePopulationIf(region == 'West', sales)
covarianceSample
covarianceSample(<value1> : number, <value2> : number) => double
Obtiene la covarianza de muestra de dos columnas.
covarianceSample(sales, profit)
covarianceSampleIf
covarianceSampleIf(<value1> : boolean, <value2> : number, <value3> : number) => double
En función de los criterios, obtiene la covarianza de muestra de dos columnas.
covarianceSampleIf(region == 'West', sales, profit)
crc32
crc32(<value1> : any, ...) => long
Calcula la síntesis del mensaje CRC32 del conjunto de columnas de diferentes tipos de datos primitivos dada una longitud en bits, que solo puede tener los valores 0(256), 224, 256, 384 y 512. Se puede usar para calcular una huella digital de una fila.
crc32(256, 'gunchus', 8.2, 'bojjus', true, toDate('2010-4-4')) -> 3630253689L
cumeDist
cumeDist() => integer
La función CumeDist calcula la posición de un valor respecto a todos los valores de la partición. El resultado es el número de filas anteriores o iguales a la fila actual en la ordenación de la partición dividido por el número total de filas de la partición de la ventana. Los valores de empate en la ordenación se evalúan en la misma posición.
cumeDist()
currentDate
currentDate([<value1> : string]) => date
Obtiene la fecha actual cuando este trabajo empieza a ejecutarse. Puede pasar una zona horaria opcional en forma de "GMT", "PST", "UTC", "America/Cayman". La zona horaria local del centro o región de la factoría de datos se usa como valor predeterminado. Consulte la clase SimpleDateFormat
de Java para obtener los formatos disponibles. 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
Obtiene la marca de tiempo actual cuando se inicia el trabajo para ejecutarse con la zona horaria local.
currentTimestamp() == toTimestamp('2250-12-31 12:12:12') -> false
currentUTC
currentUTC([<value1> : string]) => timestamp
Obtiene la marca de tiempo actual como hora UTC. Si quiere que la hora actual se interprete en una zona horaria distinta a la del clúster, puede pasar una zona horaria opcional con el formato "GMT", "PST", "UTC ", "America/Caimán". El valor predeterminado es la zona horaria actual. Consulte la clase SimpleDateFormat
de Java para obtener los formatos disponibles. https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html. Para convertir la zona horaria UTC a una distinta, use 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
Obtiene el día del mes dada una fecha.
dayOfMonth(toDate('2018-06-08')) -> 8
dayOfWeek
dayOfWeek(<value1> : datetime) => integer
Obtiene el día de la semana dada una fecha. 1 corresponde al domingo, 2 al lunes... y 7 al sábado.
dayOfWeek(toDate('2018-06-08')) -> 6
dayOfYear
dayOfYear(<value1> : datetime) => integer
Obtiene el día del año dada una fecha.
dayOfYear(toDate('2016-04-09')) -> 100
days
days(<value1> : integer) => long
Duración en milisegundos para el número de días.
days(2) -> 172800000L
decode
decode(<Input> : any, <Charset> : string) => binary
Descodifica los datos de entrada codificados en una cadena basada en el conjunto de caracteres especificado. Se puede usar un segundo argumento (opcional) para especificar qué conjunto de caracteres usar: "US-ASCII", "ISO-8859-1", "UTF-8" (valor predeterminado), "UTF-16BE", "UTF-16LE", "UTF-16".
decode(array(toByte(97),toByte(98),toByte(99)), 'US-ASCII') -> abc
degrees
degrees(<value1> : number) => double
Convierte radianes en grados.
degrees(3.141592653589793) -> 180
denseRank
denseRank() => integer
Calcula el rango de un valor en un grupo de valores especificado en la cláusula order by de una ventana. El resultado es uno más el número de filas anteriores o iguales a la fila actual en la ordenación de la partición. Los valores no producen huecos en la secuencia. La clasificación densa funciona incluso cuando los datos no están ordenados y busca cambios en los valores.
denseRank()
distinct
distinct(<value1> : array) => array
Devuelve un conjunto distinto de elementos de una matriz.
distinct([10, 20, 30, 10]) => [10, 20, 30]
divide
divide(<value1> : any, <value2> : any) => any
Divide dos números. Igual que el operador /
.
divide(20, 10) -> 2
20 / 10 -> 2
dropLeft
dropLeft(<value1> : string, <value2> : integer) => string
Quita los mismos caracteres de la izquierda de la cadena. Si la colocación solicitada supera la longitud de la cadena, se devuelve una cadena vacía.
- dropLeft('bojjus', 2) => 'jjus'
- dropLeft('cake', 10) => ''
dropRight
dropRight(<value1> : string, <value2> : integer) => string
Quita los mismos caracteres de la derecha de la cadena. Si la colocación solicitada supera la longitud de la cadena, se devuelve una cadena vacía.
- dropRight('bojjus', 2) => 'bojj'
- dropRight('cake', 10) => ''
E
encode
encode(<Input> : string, <Charset> : string) => binary
Codifica los datos de cadena de entrada en binarios basados en un conjunto de caracteres. Se puede usar un segundo argumento (opcional) para especificar qué conjunto de caracteres usar: "US-ASCII", "ISO-8859-1", "UTF-8" (valor predeterminado), "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
Comprueba si la cadena finaliza con la cadena proporcionada.
endsWith('dumbo', 'mbo') -> true
equals
equals(<value1> : any, <value2> : any) => boolean
Operador de comparación igual que. Igual que el operador ==.
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
Operador de comparación igual que, sin distinción entre mayúsculas y minúsculas. Igual que el operador <=>.
'abc'<=>'Abc' -> true
equalsIgnoreCase('abc', 'Abc') -> true
escape
escape(<string_to_escape> : string, <format> : string) => string
Escapa una cadena según un formato. Los valores literales para el formato aceptable son "json", "xml", "ecmascript", "html", "java".
except
except(<value1> : array, <value2> : array) => array
Devuelve un conjunto de diferencias de una matriz desde otros duplicados eliminados.
except([10, 20, 30], [20, 40]) => [10, 30]
expr
expr(<expr> : string) => any
Da como resultado una expresión de una cadena. Esto es lo mismo que escribir esta expresión en forma no literal. Se puede usar para pasar parámetros como representaciones de cadena.
- expr('price * discount') => any
F
factorial
factorial(<value1> : number) => long
Calcula el valor factorial de un número.
factorial(5) -> 120
false
false() => boolean
Siempre devuelve un valor false. Utilice la función syntax(false())
si hay una columna denominada "false".
(10 + 20 > 30) -> false
(10 + 20 > 30) -> false()
filter
filter(<value1> : array, <value2> : unaryfunction) => array
Filtra los elementos de la matriz que no cumplen el predicado proporcionado. "Filter" espera una referencia a un elemento de la función de predicado como #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
Busque el primer elemento de una matriz que coincida con la condición. It takes a filter function where you can address the item in the array as #item. For deeply nested maps you can refer to the parent maps using the #item_n(#item_1, #item_2...) notation.
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
Obtiene el primer valor de un grupo de columnas. Si se omite el segundo parámetro ignoreNulls, Data Factory asume false.
first(sales)
first(sales, false)
flatten
flatten(<array> : array, <value2> : array ..., <value2> : boolean) => array
Acopla una o varias matrices en una sola. Las matrices de elementos atómicos se devuelven sin modificar. El último argumento es opcional y su valor predeterminado es false para acoplar de manera recursiva más de un nivel de profundidad.
flatten([['bojjus', 'girl'], ['gunchus', 'boy']]) => ['bojjus', 'girl', 'gunchus', 'boy']
flatten([[['bojjus', 'gunchus']]] , true) => ['bojjus', 'gunchus']
floor
floor(<value1> : number) => number
Devuelve el entero más grande no mayor que el número.
floor(-0.1) -> -1
fromBase64
fromBase64(<value1> : string, <encoding type> : string) => string
Descodifica la cadena con codificación base64 especificada. Opcionalmente, puede pasar el tipo de codificación.
fromBase64('Z3VuY2h1cw==') -> 'gunchus'
fromBase64('SGVsbG8gV29ybGQ=', 'Windows-1252') -> 'Hello World'
fromUTC
fromUTC(<value1> : timestamp, [<value2> : string]) => timestamp
Convierte a la marca de tiempo de UTC. Si lo desea, puede pasar una zona horaria opcional en forma de "GMT", "PST", "UTC", "America/Cayman". El valor predeterminado es la zona horaria actual. Consulte la clase SimpleDateFormat
de Java para obtener los formatos disponibles. 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
Operador de comparación mayor que. Igual que el operador >.
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
Operador de comparación mayor que o igual que. Igual que el operador >=.
greaterOrEqual(12, 12) -> true
('dumbo' >= 'dum') -> true
greatest
greatest(<value1> : any, ...) => any
Devuelve el valor mayor entre la lista de valores como entrada, omitiendo los valores NULL. Devuelve NULL si todas las entradas son 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
Comprueba un valor de columna por el nombre en la secuencia. Puede pasar un nombre de secuencia opcional como segundo argumento. Simplemente los nombres de columna de dirección conocidos en tiempo de diseño por su nombre. No se admiten entradas calculadas, pero se pueden usar sustituciones de parámetros.
hasColumn('parent')
hasError
hasError([<value1> : string]) => boolean
Comprueba si el recurso con el identificador proporcionado está marcado como error.
Ejemplos
hasError('assert1')
hasError('assert2')
hasPath
hasPath(<value1> : string, [<streamName> : string]) => boolean
Comprueba si existe una determinada ruta de acceso jerárquica por nombre en la secuencia. Puede pasar un nombre de secuencia opcional como segundo argumento. Los nombres de columna o las rutas de acceso que se conocen en tiempo de diseño deben usarse solo mediante su nombre o mediante la ruta de acceso de la notación de puntos. No se admiten entradas calculadas, pero se pueden usar sustituciones de parámetros.
hasPath('grandpa.parent.child') => boolean
hex
hex(<value1>: binary) => string
Devuelve una representación de cadena hexa de un valor binario .
hex(toBinary([toByte(0x1f), toByte(0xad), toByte(0xbe)])) -> '1fadbe'
hour
hour(<value1> : timestamp, [<value2> : string]) => integer
Obtiene el valor de la hora de una marca de tiempo. Puede pasar una zona horaria opcional en forma de "GMT", "PST", "UTC", "America/Cayman". La zona horaria local se utiliza como el valor predeterminado. Consulte la clase SimpleDateFormat
de Java para obtener los formatos disponibles. 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
Duración en milisegundos para el número de horas.
hours(2) -> 7200000L
I
iif
iif(<condition> : boolean, <true_expression> : any, [<false_expression> : any]) => any
Basándose en una condición, aplica un valor o el otro. Si no se especifica otro, el valor se considera NULL. Ambos valores deben ser compatibles (numérico, cadena...).
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
Dadas dos o más entradas, devuelve el primer elemento no NULL. Esta función es equivalente a fusionar.
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
Comprueba si un elemento está en la matriz.
in([10, 20, 30], 10) -> true
in(['good', 'kid'], 'bad') -> false
initCap
initCap(<value1> : string) => string
Convierte la primera letra de cada palabra en mayúsculas. Las palabras se identifican como separadas por espacios en blanco.
initCap('cool iceCREAM') -> 'Cool Icecream'
instr
instr(<string> : string, <substring to find> : string) => integer
Busca la posición (basada en 1) de la substring dentro de una cadena. Se devuelve 0 si no se encuentra.
instr('dumbo', 'mbo') -> 3
instr('microsoft', 'o') -> 5
instr('good', 'bad') -> 0
intersect
intersect(<value1> : array, <value2> : array) => array
Devuelve un conjunto de intersecciones de elementos distintos de dos matrices.
intersect([10, 20, 30], [20, 40]) => [20]
isBitSet
isBitSet (<value1> : array, <value2>:integer ) => boolean
Comprueba si se establece una posición de bit en este conjunto de bits .
isBitSet(toBitSet([10, 32, 98]), 10) => true
isBoolean
isBoolean(<value1>: string) => boolean
Permite comprobar si el valor de la cadena es booleano según las reglas de toBoolean()
.
isBoolean('true') -> true
isBoolean('no') -> true
isBoolean('microsoft') -> false
isByte
isByte(<value1> : string) => boolean
Permite comprobar si el valor de la cadena es un byte con un formato opcional según las reglas de toByte()
.
isByte('123') -> true
isByte('chocolate') -> false
isDate
isDate (<value1> : string, [<format>: string]) => boolean
Permite comprobar si la cadena de fecha de entrada es una fecha con un formato de fecha de entrada opcional. Consulte la clase SimpleDateFormat de Java para conocer los formatos disponibles. Si se omite el formato de fecha de entrada, el formato predeterminado es yyyy-[M]M-[d]d
. Los formatos aceptados son [ 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
Permite comprobar si el valor de la cadena es un elemento decimal con un formato opcional según las reglas de toDecimal()
.
isDecimal('123.45') -> true
isDecimal('12/12/2000') -> false
isDelete
isDelete([<value1> : integer]) => boolean
Comprueba si la fila está marcada para eliminar. En las transformaciones que toman más de un flujo de entrada, se puede pasar el índice (basado en 1) del flujo. El índice de flujo debe ser 1 o 2 y el valor predeterminado es 1.
isDelete()
isDelete(1)
isDistinct
isDistinct(<value1> : any , <value1> : any) => boolean
Busca si una columna o un conjunto de columnas es distinto. No cuenta NULL como valor distinto.
isDistinct(custId, custName) => boolean
isDouble
isDouble (<value1> : string, [<format>: string]) => boolean
Permite comprobar si el valor de la cadena es un elemento doble con un formato opcional según las reglas de toDouble()
.
isDouble('123') -> true
isDouble('$123.45' -> '$###.00') -> true
isDouble('icecream') -> false
isError
isError([<value1> : integer]) => boolean
Comprueba si la fila se marca como error. En las transformaciones que toman más de un flujo de entrada, se puede pasar el índice (basado en 1) del flujo. El índice de flujo debe ser 1 o 2 y el valor predeterminado es 1.
isError()
isError(1)
isFloat
isFloat (<value1> : string, [<format>: string]) => boolean
Permite comprobar si el valor de la cadena es un elemento flotante con un formato opcional según las reglas de toFloat()
.
isFloat('123') -> true
isFloat('$123.45' -> '$###.00') -> true
isFloat('icecream') -> false
isIgnore
isIgnore([<value1> : integer]) => boolean
Comprueba si la fila se marca para pasarse por alto. En las transformaciones que toman más de un flujo de entrada, se puede pasar el índice (basado en 1) del flujo. El índice de flujo debe ser 1 o 2 y el valor predeterminado es 1.
isIgnore()
isIgnore(1)
isInsert
isInsert([<value1> : integer]) => boolean
Comprueba si la fila está marcada para insertar. En las transformaciones que toman más de un flujo de entrada, se puede pasar el índice (basado en 1) del flujo. El índice de flujo debe ser 1 o 2 y el valor predeterminado es 1.
isInsert()
isInsert(1)
isInteger
isInteger (<value1> : string, [<format>: string]) => boolean
Permite comprobar si el valor de la cadena es un elemento entero con un formato opcional según las reglas de toInteger()
.
isInteger('123') -> true
isInteger('$123' -> '$###') -> true
isInteger('microsoft') -> false
isLong
isLong (<value1> : string, [<format>: string]) => boolean
Permite comprobar si el valor de la cadena es un elemento largo con un formato opcional según las reglas de toLong()
.
isLong('123') -> true
isLong('$123' -> '$###') -> true
isLong('gunchus') -> false
isMatch
isMatch([<value1> : integer]) => boolean
Comprueba si la fila cumplía los criterios de coincidencia en la búsqueda. En las transformaciones que toman más de un flujo de entrada, se puede pasar el índice (basado en 1) del flujo. El índice de flujo debe ser 1 o 2 y el valor predeterminado es 1.
isMatch()
isMatch(1)
isNan
isNan (<value1> : integral) => boolean
Comprueba si no es un número.
isNan(10.2) => false
isNull
isNull(<value1> : any) => boolean
Comprueba si el valor es NULL.
isNull(NULL()) -> true
isNull('') -> false
isShort
isShort (<value1> : string, [<format>: string]) => boolean
Permite comprobar si el valor de la cadena es un elemento corto con un formato opcional según las reglas de toShort()
.
isShort('123') -> true
isShort('$123' -> '$###') -> true
isShort('microsoft') -> false
isTimestamp
isTimestamp (<value1> : string, [<format>: string]) => boolean
Permite comprobar si la cadena de fecha de entrada es una marca de tiempo con un formato de marca de tiempo de entrada opcional. Consulte la clase SimpleDateFormat de Java para conocer los formatos disponibles. Si la marca de tiempo se omite, se usa el patrón predeterminado yyyy-[M]M-[d]d hh:mm:ss[.f...]
. Puede pasar una zona horaria opcional en forma de "GMT", "PST", "UTC", "America/Cayman". La marca de tiempo admite una precisión de hasta milisegundos con un valor de 999. Consulte la clase SimpleDateFormat de Java para conocer los formatos disponibles.
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
Comprueba si la fila está marcada para actualizar. En las transformaciones que toman más de un flujo de entrada, se puede pasar el índice (basado en 1) del flujo. El índice de flujo debe ser 1 o 2 y el valor predeterminado es 1.
isUpdate()
isUpdate(1)
isUpsert
isUpsert([<value1> : integer]) => boolean
Comprueba si la fila está marcada para insertar. En las transformaciones que toman más de un flujo de entrada, se puede pasar el índice (basado en 1) del flujo. El índice de flujo debe ser 1 o 2 y el valor predeterminado es 1.
isUpsert()
isUpsert(1)
J
jaroWinkler
jaroWinkler(<value1> : string, <value2> : string) => double
Obtiene la distancia de JaroWrinkler entre dos cadenas.
jaroWinkler('frog', 'frog') => 1.0
K
keyValues
keyValues(<value1> : array, <value2> : array) => map
Crea una asignación de clave/valores. El primer parámetro es una matriz de claves y el segundo es la matriz de valores. Ambas matrices deben tener la misma longitud.
keyValues(['bojjus', 'appa'], ['gunchus', 'ammi']) => ['bojjus' -> 'gunchus', 'appa' -> 'ammi']
kurtosis
kurtosis(<value1> : number) => double
Obtiene la curtosis de una columna.
kurtosis(sales)
kurtosisIf
kurtosisIf(<value1> : boolean, <value2> : number) => double
En función de los criterios, obtiene la curtosis de una columna.
kurtosisIf(region == 'West', sales)
L
lag
lag(<value> : any, [<number of rows to look before> : number], [<default value> : any]) => any
Obtiene el valor del primer parámetro evaluado n filas antes de la fila actual. El segundo parámetro es el número de filas que se debe mirar hacia atrás, y el valor predeterminado es 1. Si no hay tantas filas, se devuelve un valor NULL, a menos que se especifique un valor predeterminado.
lag(amount, 2)
lag(amount, 2000, 100)
last
last(<value1> : any, [<value2> : boolean]) => any
Obtiene el último valor de un grupo de columnas. Si el segundo parámetro ignoreNulls se omite, se supone que es falso.
last(sales)
last(sales, false)
lastDayOfMonth
lastDayOfMonth(<value1> : datetime) => date
Obtiene el último día del mes dada una fecha.
lastDayOfMonth(toDate('2009-01-12')) -> toDate('2009-01-31')
lead
lead(<value> : any, [<number of rows to look after> : number], [<default value> : any]) => any
Obtiene el valor del primer parámetro evaluado n filas después de la fila actual. El segundo parámetro es el número de filas que se debe mirar hacia adelante, y el valor predeterminado es 1. Si no hay tantas filas, se devuelve un valor NULL, a menos que se especifique un valor predeterminado.
lead(amount, 2)
lead(amount, 2000, 100)
least
least(<value1> : any, ...) => any
Operador de comparación menor que o igual que. Igual que el operador <=.
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
Extrae un inicio de la subcadena en el índice 1 con el número de caracteres. Igual que SUBSTRING(str, 1, n).
left('bojjus', 2) -> 'bo'
left('bojjus', 20) -> 'bojjus'
length
length(<value1> : string) => integer
Devuelve la longitud de la cadena.
length('dumbo') -> 5
lesser
lesser(<value1> : any, <value2> : any) => boolean
Operador de comparación menor que. Igual que el operador <.
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
Operador de comparación menor que o igual que. Igual que el operador <=.
lesserOrEqual(12, 12) -> true
('dumbo' <= 'dum') -> false
levenshtein
levenshtein(<from string> : string, <to string> : string) => integer
Obtiene la distancia de edición entre dos cadenas.
levenshtein('boys', 'girls') -> 4
like
like(<string> : string, <pattern match> : string) => boolean
El patrón es una cadena que se hace coincidir literalmente. Las excepciones son los siguientes símbolos especiales: _ coincide con cualquier carácter de la entrada (similar a. en expresiones regulares posix
) % coincide con cero o más caracteres de la entrada (similar a .*
en posix
expresiones regulares).
El carácter de escape es ". Si un carácter de escape precede a un símbolo especial u otro carácter de escape, el carácter siguiente se hace coincidir literalmente. No es válido escapar cualquier otro carácter.
like('icecream', 'ice%') -> true
locate
locate(<substring to find> : string, <string> : string, [<from index - 1-based> : integral]) => integer
Busca la posición (basada en 1) de la substring dentro de una cadena que inicia una determinada posición. Si la posición se omite se considera desde el principio de la cadena. Se devuelve 0 si no se encuentra.
locate('mbo', 'dumbo') -> 3
locate('o', 'microsoft', 6) -> 7
locate('bad', 'good') -> 0
log
log(<value1> : number, [<value2> : number]) => double
Calcula el valor del logaritmo. Se puede suministrar una base opcional o un número de Euler si se usa.
log(100, 10) -> 2
log10
log10(<value1> : number) => double
Calcula el valor del logaritmo en base 10.
log10(100) -> 2
lookup
lookup(key, key2, ...) => complex[]
Busca la primera fila del receptor almacenado en caché con las claves especificadas, que coinciden con las claves del receptor almacenado en caché.
cacheSink#lookup(movieId)
lower
lower(<value1> : string) => string
Pone en minúsculas una cadena.
lower('GunChus') -> 'gunchus'
lpad
lpad(<string to pad> : string, <final padded length> : integral, <padding> : string) => string
Left rellena la cadena mediante el carácter de relleno proporcionado hasta que se alcanza una determinada longitud. Si la cadena es igual o mayor que la longitud, se recorta para cumplir con la longitud.
lpad('dumbo', 10, '-') -> '-----dumbo'
lpad('dumbo', 4, '-') -> 'dumb'
ltrim
ltrim(<string to trim> : string, [<trim characters> : string]) => string
Left recorta una cadena de caracteres iniciales. Si no se especifica el segundo parámetro, recorta el espacio en blanco. Si no, recorta cualquier carácter especificado en el segundo parámetro.
ltrim(' dumbo ') -> 'dumbo '
ltrim('!--!du!mbo!', '-!') -> 'du!mbo!'
M
map
map(<value1> : array, <value2> : unaryfunction) => any
Asigna cada elemento de la matriz a un nuevo elemento mediante la expresión proporcionada. La asignación espera una referencia a un elemento de la función de expresión como #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
Transforma una asignación al asociar las claves a nuevos valores. Devuelve una matriz. Toma una función de asignación donde se puede hacer referencia al elemento como #key y al índice actual como #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
Asigna de manera condicional una matriz a otra de la misma longitud o más corta. The values can be of any datatype including structTypes. It takes a mapping function where you can address the item in the array as #item and current index as #index. En el caso de asignaciones con anidaciones muy profundas, puede consultar las asignaciones primarias mediante la notación #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
Asigna cada elemento de la matriz a un nuevo elemento mediante la expresión proporcionada. Map espera una referencia a un elemento en la función de expresión como #item y una referencia al índice del elemento como #index.
mapIndex([1, 2, 3, 4], #item + 2 + #index) -> [4, 6, 8, 10]
mapLoop
mapLoop(<value1> : integer, <value2> : unaryfunction) => any
Produce un bucle desde 1 hasta la longitud para crear una matriz de esa longitud. It takes a mapping function where you can address the index in the array as #index. En el caso de asignaciones con anidaciones muy profundas, puede consultar las asignaciones primarias mediante la notación #index_n(#index_1, #index_2...).
mapLoop(3, #index * 10) -> [10, 20, 30]
max
max(<value1> : any) => any
Obtiene el valor máximo de una columna.
max(sales)
maxIf
maxIf(<value1> : boolean, <value2> : any) => any
En función de los criterios, obtiene el valor máximo de una columna.
maxIf(region == 'West', sales)
md5
md5(<value1> : any, ...) => string
Calcula la síntesis del mensaje MD5 del conjunto de columnas de diferentes tipos de datos primitivos y devuelve una cadena hexadecimal de 32 caracteres. Se puede usar para calcular una huella digital de una fila.
md5(5, 'gunchus', 8.2, 'bojjus', true, toDate('2010-4-4')) -> '4ce8a880bd621a1ffad0bca905e1bc5a'
mean
mean(<value1> : number) => number
Obtiene la media de valores de una columna. Igual que AVG.
mean(sales)
meanIf
meanIf(<value1> : boolean, <value2> : number) => number
En función de los criterios, obtiene la media de valores de una columna. Igual que avgIf.
meanIf(region == 'West', sales)
millisecond
millisecond(<value1> : timestamp, [<value2> : string]) => integer
Obtiene el valor de los milisegundos de una fecha. Puede pasar una zona horaria opcional en forma de "GMT", "PST", "UTC", "America/Cayman". La zona horaria local se utiliza como el valor predeterminado. Consulte la clase SimpleDateFormat
de Java para obtener los formatos disponibles. 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
Duración en milisegundos para el número de milisegundos.
milliseconds(2) -> 2L
min
min(<value1> : any) => any
Obtiene el valor mínimo de una columna.
min(sales)
minIf
minIf(<value1> : boolean, <value2> : any) => any
En función de los criterios, obtiene el valor mínimo de una columna.
minIf(region == 'West', sales)
minus
minus(<value1> : any, <value2> : any) => any
Resta números. Restar el número de días a partir de una fecha. Resta la vigencia de una marca de tiempo. Resta dos marcas de tiempo para obtener la diferencia en milisegundos. Igual que el operador -.
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
Obtiene el valor de los minutos de una marca de tiempo. Puede pasar una zona horaria opcional en forma de "GMT", "PST", "UTC", "America/Cayman". La zona horaria local se utiliza como el valor predeterminado. Consulte la clase SimpleDateFormat
de Java para obtener los formatos disponibles. 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
Duración en milisegundos para el número de minutos.
minutes(2) -> 120000L
mlookup
mlookup(key, key2, ...) => complex[]
Busca todas las filas coincidentes del receptor almacenado en caché con las claves especificadas, que coinciden con las claves del receptor almacenado en caché.
cacheSink#mlookup(movieId)
mod
mod(<value1> : any, <value2> : any) => any
Módulo de par de números. Igual que el operador %.
mod(20, 8) -> 4
20 % 8 -> 4
month
month(<value1> : datetime) => integer
Obtiene el valor del mes de una fecha o una marca de tiempo.
month(toDate('2012-8-8')) -> 8
monthsBetween
monthsBetween(<from date/timestamp> : datetime, <to date/timestamp> : datetime, [<roundoff> : boolean], [<time zone> : string]) => double
Obtiene el número de meses entre dos fechas. Puede redondear el cálculo. Puede pasar una zona horaria opcional en forma de "GMT", "PST", "UTC", "America/Cayman". La zona horaria local se utiliza como el valor predeterminado. Consulte la clase SimpleDateFormat
de Java para obtener los formatos disponibles. 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
Multiplica dos números. Igual que el operador *.
multiply(20, 10) -> 200
20 * 10 -> 200
No
negate
negate(<value1> : number) => number
Niega un número. Convierte los números positivos en negativos y viceversa.
negate(13) -> -13
nextSequence
nextSequence() => long
Devuelve la siguiente secuencia única. El número es consecutivo solo dentro de una partición y viene precedido por el identificador de la partición.
nextSequence() == 12313112 -> false
normalize
normalize(<String to normalize> : string) => string
Normaliza el valor de la cadena para separar caracteres Unicode acentuados.
regexReplace(normalize('bo²s'), `\p{M}`, '') -> 'boys'
not
not(<value1> : boolean) => boolean
Operador de negación lógica.
not(true) -> false
not(10 == 20) -> true
notEquals
notEquals(<value1> : any, <value2> : any) => boolean
Operador de comparación no igual que. Igual que el operador !=.
12 != 24 -> true
'bojjus' != 'bo' + 'jjus' -> false
nTile
nTile([<value1> : integer]) => integer
La función NTile
divide las filas para cada partición de ventana en n
cubos comprendidos entre los valores 1 y n
como máximo. Los valores de cubo variarán en 1 como máximo. Si el número de filas de la partición no se divide uniformemente en el número de cubos, los valores del resto se distribuyen uno por cubo, empezando por el primer cubo. La función NTile
es útil para el cálculo de tertiles
, cuartiles, deciles y otras estadísticas de resumen comunes. La función calcula dos variables durante la inicialización: El tamaño de un cubo normal tendrá una fila extra agregada. Ambas variables se basan en el tamaño de la partición actual. Durante el proceso de cálculo, la función realiza un seguimiento del número de fila actual, el número de cubo actual y el número de fila en el que el cubo cambiará (bucketThreshold). Cuando el número de la fila actual alcance el umbral del cubo, el valor del cubo se incrementa en uno y el umbral aumentará el tamaño del cubo (más uno adicional si el cubo actual se rellena).
nTile()
nTile(numOfBuckets)
null
null() => null
Devuelve un valor NULL. Use la función syntax(null())
si hay una columna denominada "null". Cualquier operación que use dará como resultado un valor 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
Operador lógico OR. Igual que ||.
or(true, false) -> true
true || false -> true
originColumns
originColumns(<streamName> : string) => any
Obtiene todas las columnas de salida de un flujo de origen donde se crearon columnas. Debe incluirse en otra función.
array(toString(originColumns('source1')))
output
output() => any
Devuelve la primera fila de los resultados del receptor almacenado en caché .
cacheSink#output()
outputs
output() => any
Devuelve el conjunto completo de filas de salida de los resultados del receptor almacenado en caché .
cacheSink#outputs()
P
partitionId
partitionId() => integer
Devuelve el identificador de la partición actual en donde se encuentra la fila de entrada.
partitionId()
pMod
pMod(<value1> : any, <value2> : any) => any
Módulo positivo de par de números.
pmod(-20, 8) -> 4
power
power(<value1> : number, <value2> : number) => double
Eleva un número a la potencia de otro.
power(10, 2) -> 100
R
radians
radians(<value1> : number) => double
Convierte grados en radianes.
radians(180) => 3.141592653589793
random
random(<value1> : integral) => long
Devuelve un número aleatorio dado un valor de inicialización opcional dentro de una partición. El valor de inicialización debe ser un valor fijo y se usa con partitionId para generar valores aleatorios.
random(1) == 1 -> false
rank
rank() => integer
Calcula el rango de un valor en un grupo de valores especificado en la cláusula order by de una ventana. El resultado es uno más el número de filas anteriores o iguales a la fila actual en la ordenación de la partición. Los valores generarán intervalos en la secuencia. La clasificación funciona incluso cuando los datos no están ordenados y busca cambios en los valores.
rank()
reassociate
reassociate(<value1> : map, <value2> : binaryFunction) => map
Transforma una asignación al asociar las claves a nuevos valores. Toma una función de asignación donde se puede hacer referencia al elemento como #key y al índice actual como #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
Acumula los elementos de una matriz. "Reduce" espera una referencia a un acumulador y a un elemento en la primera función de expresión, como #acc y #item, y espera que el valor resultante sea #result para poder usarlo en la segunda función de expresión.
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
Extrae una subcadena coincidente para un patrón de expresión regular especificado. El último parámetro identifica el grupo de coincidencia y, si se omite, se usa el valor predeterminado 1. Use <regex>
(comilla inversa) para que coincida con una cadena sin escape. El índice 0 devuelve todas las coincidencias. Sin grupos de coincidencias, el índice 1 y versiones posteriores no devolverán ningún resultado.
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
Comprueba si la cadena coincide con el patrón de expresión regular especificado. Use <regex>
(comilla inversa) para que coincida con una cadena sin escape.
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
Reemplaza todas las repeticiones de un patrón de expresión regular por otra subcadena en la cadena dada. Use <regex>
(comilla inversa) para que coincida con una cadena sin escape.
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
Divide una cadena según un delimitador basándose en la expresión regular y devuelve una matriz de cadenas.
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
Reemplaza todas las repeticiones de una subcadena por otra subcadena en la cadena dada. Si se omite el último parámetro, el valor predeterminado es una cadena vacía.
replace('doggie dog', 'dog', 'cat') -> 'catgie cat'
replace('doggie dog', 'dog', '') -> 'gie '
replace('doggie dog', 'dog') -> 'gie '
reverse
reverse(<value1> : string) => string
Invierte una cadena.
reverse('gunchus') -> 'suhcnug'
right
right(<string to subset> : string, <number of characters> : integral) => string
Extrae una subcadena con el número de caracteres de la derecha. Igual que SUBSTRING(str, LENGTH(str) - n, n).
right('bojjus', 2) -> 'us'
right('bojjus', 20) -> 'bojjus'
rlike
rlike(<string> : string, <pattern match> : string) => boolean
Comprueba si la cadena coincide con el patrón de expresión regular especificado.
rlike('200.50', `(\d+).(\d+)`) -> true
rlike('bogus', `M[0-9]+.*`) -> false
round
round(<number> : number, [<scale to round> : number], [<rounding option> : integral]) => double
Redondea un número con una escala opcional y un modo de redondeo opcional dados. Si la escala se omite, se establece en 0 de manera predeterminada. Si el modo se omite, se establece en ROUND_HALF_UP(5) de manera predeterminada. Los valores de redondeo incluyen
- ROUND_UP: modo de redondeo en dirección contraria a cero.
- ROUND_DOWN: modo de redondeo hacia cero.
- ROUND_CEILING: modo redondeo hacia el infinito positivo. [Igual que ROUND_UP si la entrada es un valor positivo. Si es negativo, se comporta como ROUND_DOWN. Ejemplo = -1,1 sería -1,0 con ROUND_CEILING y -2 con ROUND_UP]
- ROUND_FLOOR: modo redondeo hacia el infinito negativo. [Igual que ROUND_DOWN si la entrada es un valor positivo. Si es negativo, se comporta como ROUND_UP]
- ROUND_HALF_UP: modo de redondeo hacia el “vecino más cercano”, a menos que ambos vecinos sean equidistantes, en cuyo caso se usa ROUND_UP. [Más común + valor predeterminado del flujo de datos].
- ROUND_HALF_DOWN: modo redondeo hacia el “vecino más cercano”, a menos que ambos vecinos sean equidistantes, en cuyo caso se usa ROUND_DOWN.
- ROUND_HALF_EVEN: modo de redondeo hacia el “vecino más cercano”, a menos que ambos vecinos sean equidistantes, en cuyo caso se redondea hacia el vecino par.
- ROUND_UNNECESSARY: modo de redondeo para afirmar que la operación de redondeo tiene un resultado exacto, por lo que no es necesario redondear.
round(100.123) -> 100.0
round(2.5, 0) -> 3.0
round(5.3999999999999995, 2, 7) -> 5.40
rowNumber
rowNumber() => integer
Asigna una numeración secuencial de filas para las filas en una ventana que comienzan con 1.
rowNumber()
rpad
rpad(<string to pad> : string, <final padded length> : integral, <padding> : string) => string
Right rellena la cadena mediante el carácter de relleno proporcionado hasta que se alcanza una determinada longitud. Si la cadena es igual o mayor que la longitud, se recorta para cumplir con la longitud.
rpad('dumbo', 10, '-') -> 'dumbo-----'
rpad('dumbo', 4, '-') -> 'dumb'
rpad('dumbo', 8, '<>') -> 'dumbo<><'
rtrim
rtrim(<string to trim> : string, [<trim characters> : string]) => string
Right recorta una cadena de caracteres finales. Si no se especifica el segundo parámetro, recorta el espacio en blanco. Si no, recorta cualquier carácter especificado en el segundo parámetro.
rtrim(' dumbo ') -> ' dumbo'
rtrim('!--!du!mbo!', '-!') -> '!--!du!mbo'
S
second
second(<value1> : timestamp, [<value2> : string]) => integer
Obtiene el valor de los segundos de una fecha. Puede pasar una zona horaria opcional en forma de "GMT", "PST", "UTC", "America/Cayman". La zona horaria local se utiliza como el valor predeterminado. Consulte la clase SimpleDateFormat
de Java para obtener los formatos disponibles. 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
Duración en milisegundos para el número de segundos.
seconds(2) -> 2000L
setBitSet
setBitSet (<value1>: array, <value2>:array) => array
Establece las posiciones de bit en este conjunto de bits .
setBitSet(toBitSet([10, 32]), [98]) => [4294968320L, 17179869184L]
sha1
sha1(<value1> : any, ...) => string
Calcula la síntesis del mensaje SHA-1 del conjunto de columnas de diferentes tipos de datos primitivos y devuelve una cadena hexadecimal de 40 caracteres. Se puede usar para calcular una huella digital de una fila.
sha1(5, 'gunchus', 8.2, 'bojjus', true, toDate('2010-4-4')) -> '46d3b478e8ec4e1f3b453ac3d8e59d5854e282bb'
sha2
sha2(<value1> : integer, <value2> : any, ...) => string
Calcula la síntesis del mensaje SHA-2 del conjunto de columnas de diferentes tipos de datos primitivos dada una longitud en bits, que solo puede tener los valores 0(256), 224, 256, 384 y 512. Se puede usar para calcular una huella digital de una fila.
sha2(256, 'gunchus', 8.2, 'bojjus', true, toDate('2010-4-4')) -> 'afe8a553b1761c67d76f8c31ceef7f71b66a1ee6f4e6d3b5478bf68b47d06bd3'
sin
sin(<value1> : number) => double
Calcula un valor de seno.
sin(2) -> 0.9092974268256817
sinh
sinh(<value1> : number) => double
Calcula un valor de seno hiperbólico.
sinh(0) -> 0.0
size
size(<value1> : any) => integer
Busca el tamaño de una matriz o un tipo de asignación.
size(['element1', 'element2']) -> 2
size([1,2,3]) -> 3
skewness
skewness(<value1> : number) => double
Obtiene la asimetría de una columna.
skewness(sales)
skewnessIf
skewnessIf(<value1> : boolean, <value2> : number) => double
En función de los criterios, obtiene la asimetría de una columna.
skewnessIf(region == 'West', sales)
slice
slice(<array to slice> : array, <from 1-based index> : integral, [<number of items> : integral]) => array
Extrae un subconjunto de una matriz de una posición. La posición se basa en 1. Si la longitud se omite, se establece el final de la cadena como valor predeterminado.
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
Ordena la matriz mediante la función de predicado proporcionada. "Sort" espera una referencia a dos elementos consecutivos de la función de expresión, como #item1 y #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
Obtiene el código soundex
de la cadena.
soundex('genius') -> 'G520'
split
split(<string to split> : string, <split characters> : string) => array
Divide una cadena según un delimitador y devuelve una matriz de cadenas.
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
Calcula la raíz cuadrada de un número.
sqrt(9) -> 3
startsWith
startsWith(<string> : string, <substring to check> : string) => boolean
Comprueba si la cadena comienza por la cadena proporcionada.
startsWith('dumbo', 'du') -> true
stddev
stddev(<value1> : number) => double
Obtiene la desviación estándar de una columna.
stdDev(sales)
stddevIf
stddevIf(<value1> : boolean, <value2> : number) => double
En función de los criterios, obtiene la desviación estándar de una columna.
stddevIf(region == 'West', sales)
stddevPopulation
stddevPopulation(<value1> : number) => double
Obtiene la desviación estándar de población de una columna.
stddevPopulation(sales)
stddevPopulationIf
stddevPopulationIf(<value1> : boolean, <value2> : number) => double
En función de los criterios, obtiene la desviación estándar de población de una columna.
stddevPopulationIf(region == 'West', sales)
stddevSample
stddevSample(<value1> : number) => double
Obtiene la desviación estándar de muestra de una columna.
stddevSample(sales)
stddevSampleIf
stddevSampleIf(<value1> : boolean, <value2> : number) => double
En función de los criterios, obtiene la desviación estándar de muestra de una columna.
stddevSampleIf(region == 'West', sales)
subDays
subDays(<date/timestamp> : datetime, <days to subtract> : integral) => datetime
Resta días de una fecha o una marca de tiempo. Igual que el operador - para la fecha.
subDays(toDate('2016-08-08'), 1) -> toDate('2016-08-07')
subMonths
subMonths(<date/timestamp> : datetime, <months to subtract> : integral) => datetime
Resta meses a una fecha o marca de tiempo.
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
Extrae una subcadena de una determinada longitud de una posición. La posición se basa en 1. Si la longitud se omite, se establece el final de la cadena como valor predeterminado.
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(<cadena al subconjunto><delimitado>substringIndex( : string, : string, <recuento de delimitadores> : integral]) => string
Extrae la subcadena antes de count
repeticiones del delimitador. Si count
es positivo, se devuelve todo lo que se encuentra a la izquierda del delimitador final (contando desde la izquierda). Si count
es negativo, se devuelve todo lo que se encuentra a la derecha del delimitador final (contando desde la derecha).
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
Obtiene la suma de agregados de una columna numérica.
sum(col)
sumDistinct
sumDistinct(<value1> : number) => number
Obtiene la suma de agregados de valores distintos de una columna numérica.
sumDistinct(col)
sumDistinctIf
sumDistinctIf(<value1> : boolean, <value2> : number) => number
En función de los criterios, obtiene la suma de agregados de una columna numérica. La condición se puede basar en cualquier columna.
sumDistinctIf(state == 'CA' && commission < 10000, sales)
sumDistinctIf(true, sales)
sumIf
sumIf(<value1> : boolean, <value2> : number) => number
En función de los criterios, obtiene la suma de agregados de una columna numérica. La condición se puede basar en cualquier columna.
sumIf(state == 'CA' && commission < 10000, sales)
sumIf(true, sales)
T
tan
tan(<value1> : number) => double
Calcula un valor de tangente.
tan(0) -> 0.0
tanh
tanh(<value1> : number) => double
Calcula un valor de tangente hiperbólica.
tanh(0) -> 0.0
toBase64
toBase64(<value1> : string, <encoding type> : string]) => string
Codifica la cadena especificada en Base64. Opcionalmente, puede pasar el tipo de codificación.
toBase64('bojjus') -> 'Ym9qanVz'
toBase64('± 25000, € 5.000,- |', 'Windows-1252') -> 'sSAyNTAwMCwggCA1LjAwMCwtIHw='
toBinary
toBinary(<value1> : any) => binary
Convierte cualquier valor numérico/fecha/marca de tiempo/cadena en una representación binaria.
toBinary(3) -> [0x11]
toBoolean
toBoolean(<value1> : string) => boolean
Convierte un valor de (" t", "true", "y", "yes", "1") en true y ("f", "false", "n", "no", "0") en false y NULL para cualquier otro valor.
toBoolean('true') -> true
toBoolean('n') -> false
isNull(toBoolean('truthy')) -> true
toByte
toByte(<value> : any, [<format> : string], [<locale> : string]) => byte
Convierte cualquier valor numérico o cadena en un valor de tipo byte. Se puede utilizar un formato decimal de Java opcional para la conversión.
toByte(123)
123
toByte(0xFF)
-1
toByte('123')
123
toDate
toDate(<string> : any, [<date format> : string]) => date
Convierte la cadena de fecha de entrada en fecha con un formato de fecha de entrada opcional. Consulte la clase SimpleDateFormat
de Java para obtener los formatos disponibles. Si se omite el formato de fecha de entrada, el formato predeterminado es aaaa-[M]M-[d]d. Los formatos aceptados son :[ aaaa, aaaa-[M]M, aaaa-[M]M-[d]d, aaaa-[M]M-[d]dH* ].
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)
Convierte cualquier valor numérico o cadena en un valor decimal. Si no se especifican la precisión y la escala, el valor predeterminado es (10,2). Se puede utilizar un formato decimal de Java opcional para la conversión. Formato de configuración regional opcional en el formulario del lenguaje BCP47, como 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
Convierte cualquier valor numérico o cadena en un valor doble. Se puede utilizar un formato decimal de Java opcional para la conversión. Formato de configuración regional opcional en el formulario del lenguaje BCP47, como 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
Convierte cualquier valor numérico o cadena en un valor flotante. Se puede utilizar un formato decimal de Java opcional para la conversión. Trunca cualquier valor doble.
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
Convierte cualquier valor numérico o cadena en un valor entero. Se puede utilizar un formato decimal de Java opcional para la conversión. Trunca cualquier valor long, float o double.
toInteger(123) -> 123
toInteger('123') -> 123
toInteger('$123', '$###') -> 123
toLong
toLong(<value> : any, [<format> : string], [<locale> : string]) => long
Convierte cualquier valor numérico o cadena en un valor largo. Se puede utilizar un formato decimal de Java opcional para la conversión. Trunca cualquier valor float o double.
toLong(123) -> 123
toLong('123') -> 123
toLong('$123', '$###') -> 123
topN
topN(<column/expression> : any, <count> : long, <n> : integer) => array
Obtiene los valores N principales de esta columna en función del argumento Count.
topN(custId, count, 5)
topN(productId, num_sales, 10)
toShort
toShort(<value> : any, [<format> : string], [<locale> : string]) => short
Convierte cualquier valor numérico o cadena en un valor corto. Se puede utilizar un formato decimal de Java opcional para la conversión. Trunca cualquier valor entero, long, float o double.
toShort(123) -> 123
toShort('123') -> 123
toShort('$123', '$###') -> 123
toString
toString(<value> : any, [<number format/date format> : string], [<date locale> : string]) => string
Convierte un tipo de datos primitivo en una cadena. Para los números y la fecha se puede especificar un formato. Si no se especifica, se elige el valor predeterminado del sistema. Para los números, se usa el formato decimal de Java. Consulte el formato SimpleDateFormat de Java para ver todos los formatos de fecha posibles; el formato predeterminado es aaaa-MM-dd. Para la fecha o la marca de tiempo, se puede especificar opcionalmente una configuración regional.
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
Convierte una cadena en una marca de tiempo dado un formato de marca de tiempo opcional. Si la marca de tiempo se omite, se usa el patrón predeterminado aaaa-[M]M-[d]d hh:mm:ss[.f...]. Puede pasar una zona horaria opcional en forma de "GMT", "PST", "UTC", "America/Cayman". La marca de tiempo admite una precisión de hasta milisegundos, con el valor de 999. Consulte la clase SimpleDateFormat
de Java para obtener los formatos disponibles. 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
Convierte la marca de tiempo en UTC. Puede pasar una zona horaria opcional en forma de "GMT", "PST", "UTC", "America/Cayman". La zona horaria actual se establece como predeterminada. Consulte la clase SimpleDateFormat
de Java para obtener los formatos disponibles. 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
Reemplaza un conjunto de caracteres por otro conjunto de caracteres de la cadena. Los caracteres tienen un reemplazo de 1 a 1.
translate('(bojjus)', '()', '[]') -> '[bojjus]'
translate('(gunchus)', '()', '[') -> '[gunchus'
trim
trim(<string to trim> : string, [<trim characters> : string]) => string
Recorta una cadena de caracteres iniciales y finales. Si no se especifica el segundo parámetro, recorta el espacio en blanco. Si no, recorta cualquier carácter especificado en el segundo parámetro.
trim(' dumbo ') -> 'dumbo'
trim('!--!du!mbo!', '-!') -> 'dumbo'
true
true() => boolean
Siempre devuelve un valor true. Use la función syntax(true())
si hay una columna denominada "true".
(10 + 20 == 30) -> true
(10 + 20 == 30) -> true()
typeMatch
typeMatch(<type> : string, <base type> : string) => boolean
Coincide con el tipo de la columna. Solo se puede usar en expresiones de patrón. El número coincide con los tipos short, integer, long, double, float o decimal; "integral" coincide con los tipos short, integer y long; "fractional" coincide con los tipos double, float y decimal; "datetime" coincide con los tipos de date o timestamp.
typeMatch(type, 'number')
typeMatch('date', 'datetime')
U
unescape
unescape(<string_to_escape> : string, <format> : string) => string
Elimina el escape de una cadena según un formato. Los valores literales para el formato aceptable son "json", "xml", "ecmascript", "html", "java".
unescape('{\\\\\"value\\\\\": 10}', 'json')
'{\\\"value\\\": 10}'
unfold
unfold (<value1>: array) => any
Despliega una matriz en un conjunto de filas y repite los valores de las columnas restantes en cada fila.
unfold(addresses) => any
unfold( @(name = salesPerson, sales = salesAmount) ) => any
unhex
unhex(<value1>: string) => binary
Deshace la representación hexa de un valor binario de su representación de cadena. Se puede usar con SHA2, MD5 para convertir de cadena a representación binaria.
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
Devuelve un conjunto de uniones de elementos distintos de dos matrices.
union([10, 20, 30], [20, 40]) => [10, 20, 30, 40]
upper
upper(<value1> : string) => string
Pone en mayúsculas una cadena.
upper('bojjus') -> 'BOJJUS'
uuid
uuid() => string
Devuelve el UUID generado.
uuid()
V
variance
variance(<value1> : number) => double
Obtiene la varianza de una columna.
variance(sales)
varianceIf
varianceIf(<value1> : boolean, <value2> : number) => double
En función de los criterios, obtiene la varianza de una columna.
varianceIf(region == 'West', sales)
variancePopulation
variancePopulation(<value1> : number) => double
Obtiene la varianza de población de una columna.
variancePopulation(sales)
variancePopulationIf
variancePopulationIf(<value1> : boolean, <value2> : number) => double
En función de los criterios, obtiene la varianza de población de una columna.
variancePopulationIf(region == 'West', sales)
varianceSample
varianceSample(<value1> : number) => double
Obtiene la varianza no sesgada de una columna.
varianceSample(sales)
varianceSampleIf
varianceSampleIf(<value1> : boolean, <value2> : number) => double
En función de los criterios, obtiene la varianza no sesgada de una columna.
varianceSampleIf(region == 'West', sales)
W
weekOfYear
weekOfYear(<value1> : datetime) => integer
Obtiene la semana del año dada una fecha.
weekOfYear(toDate('2008-02-20')) -> 8
weeks
weeks(<value1> : integer) => long
Duración en milisegundos para el número de semanas.
weeks(2) -> 1209600000L
x
xor
xor(<value1> : boolean, <value2> : boolean) => boolean
Operador XOR lógico. Igual que el operador ^.
xor(true, false) -> true
xor(true, true) -> false
true ^ false -> true
Y
year
year(<value1> : datetime) => integer
Obtiene el valor de año de una fecha.
year(toDate('2012-8-8')) -> 2012
Contenido relacionado
- Lista de todas las funciones de agregado.
- Lista de todas las funciones de matriz.
- Lista de todas las funciones de búsqueda almacenadas en caché.
- Lista de todas las funciones de conversión.
- Lista de todas las funciones de fecha y hora.
- Lista de todas las funciones de expresiones.
- Lista de todas las funciones de asignación.
- Lista de todas las metafunciones.
- Lista de todas las funciones de ventana.
- Aprenda a usar el Generador de expresiones.