Compartir a través de


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

Tip

Pruebe Data Factory en Microsoft Fabric, una solución de análisis integral 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 la creación de informes. Obtenga información sobre cómo iniciar una nueva evaluación gratuita.

Los flujos de datos están disponibles tanto en canalizaciones de Azure Data Factory como en canalizaciones de Azure Synapse Analytics. Este artículo se aplica a los flujos de datos de asignación. Si no está familiarizado con las transformaciones, consulte el artículo introductorio Transformar datos mediante flujos de datos de asignación.

En este artículo se proporcionan detalles sobre el uso de todas las expresiones y funciones compatibles con Azure Data Factory y Azure Synapse Analytics en los flujos de datos de mapeo. Para ver resúmenes de cada tipo de función compatible, consulte los siguientes artículos:

Lista alfabética de todas las funciones

La siguiente lista alfabética incluye todas las funciones que están disponibles en los flujos de datos de mapeo.

A

abs

abs(<value1> : number) => number

Devuelve 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 duración a una marca de tiempo. Anexa una matriz de un tipo similar a otro. 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 marca de fecha o hora. Igual que el operador + para las fechas.

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

addMonths

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

Agrega meses a una marca de fecha o hora. Puede especificar opcionalmente 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

Usa el 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.

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

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 está basado en 1. Un índice fuera de límite da como resultado un valor NULL. Busca un valor en un mapa cuando se le asigna una clave. Si no se encuentra la clave, devuelve un valor 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

Obtiene el promedio de valores de una columna, en función de los criterios.

  • 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. Puede comparar valores numéricos, de cadena y datetime.

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

bitwiseAnd

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

Utiliza el operador bitwise And en tipos enteros. Igual que el operador &.

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

bitwiseOr

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

Usa el operador a nivel de bits Or en tipos enteros. Igual que el operador |.

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

bitwiseXor

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

Usa el operador bitwise Or en 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 de Blake2 de un conjunto de columnas de distintos tipos de datos primitivos cuando se les da una longitud de bits, que solo puede ser múltiplo de 8 entre 8 y 512. Puede usarlo 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 de Blake2 de un conjunto de columnas de distintos tipos de datos primitivos cuando se les da una longitud de bits, que solo puede ser múltiplos de 8 entre 8 y 512. Puede usarlo 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

Busca un subelemento dentro de una estructura o matriz de estructuras. Si hay varias coincidencias, se devuelve la primera. Si no hay coincidencias, se devuelve un NULL valor. El valor devuelto debe ser convertido por una de las acciones de conversión de tipos (como ? date y ? string). Nombres de columna de dirección conocidos en tiempo de diseño por sus nombres. No se admiten entradas calculadas, pero puede 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 NULL valor. El valor devuelto debe ser convertido por una de las funciones de conversión de tipos (como TO_DATE y TO_STRING). Nombres de columna de dirección conocidos en tiempo de diseño por sus nombres. No se admiten entradas calculadas, pero puede 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 coincidencias para una columna, toda la salida es un NULL valor. El valor devuelto requiere una función de conversión de tipos (como toDate y toString). Nombres de columna de dirección conocidos en tiempo de diseño por sus nombres. No se admiten entradas calculadas, pero puede 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 NULL valor. El valor devuelto debe ser convertido por una de las funciones de conversión de tipos (como TO_DATE y TO_STRING). Nombres de columna de dirección conocidos en tiempo de diseño por sus nombres. No se admiten entradas calculadas, pero puede 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 el flujo del que se originó. Si hay varias coincidencias, se devuelve la primera. Si no hay coincidencias, se devuelve un NULL valor. El valor devuelto debe ser convertido por una de las funciones de conversión de tipos (como TO_DATE y TO_STRING). Nombres de columna de dirección conocidos en tiempo de diseño por sus nombres. No se admiten entradas calculadas, pero puede 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 NULL. Los nombres o rutas de acceso de las columnas conocidos en tiempo de diseño solo deben abordarse usando su nombre o la ruta de acceso con notación de puntos. No se admiten entradas calculadas, pero puede 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 NULL valor. El valor devuelto debe ser convertido por una de las funciones de conversión de tipos (como TO_DATE o TO_STRING). No se admiten entradas calculadas, pero puede 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

En función de las condiciones alternas, la case función aplica un valor u otro. Si el número de entradas es par, el otro toma el valor predeterminado de 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. Puede recopilar y transformar estructuras 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. Puede recopilar y transformar estructuras 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 if value1 == value2 y 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. La función Th 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 NULL valores del 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

Obtiene el recuento agregado de valores, en función de los criterios. Si se especifica la columna opcional, omite los NULL valores del 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

Obtiene la covarianza poblacional de dos columnas, basándose en criterios.

  • 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

Obtiene la covarianza muestral de dos columnas, en función de un criterio.

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

crc32

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

Calcula el hash CRC32 de un conjunto de columnas de distintos tipos de datos primitivos cuando se da una longitud de bits, que solo puede ser de valores 0(256), 224, 256, 384y 512. Puede usarlo para calcular una huella digital de una fila.

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

cumeDist

cumeDist() => integer

La cumeDist función calcula la posición de un valor en relación con 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, UTCo 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 conocer los formatos disponibles.

  • 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 el trabajo comienza a ejecutarse con una zona horaria local.

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

currentUTC

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

Obtiene la marca de tiempo actual como UTC. Si desea que la hora actual se interprete en una zona horaria diferente de la zona horaria del clúster, puede pasar una zona horaria opcional en forma de GMT, PST, UTCo America/Cayman. El valor por defecto es la zona horaria actual. Consulte la clase SimpleDateFormat de Java para conocer los formatos disponibles. Para convertir la hora UTC en una zona horaria diferente, 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 cuando se le asigna una fecha.

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

dayOfWeek

dayOfWeek(<value1> : datetime) => integer

Obtiene el día de la semana cuando se especifica una fecha. Por ejemplo, 1 es domingo, 2 es lunes, ... y 7 es sábado.

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

dayOfYear

dayOfYear(<value1> : datetime) => integer

Obtiene el día del año cuando se le asigna una fecha.

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

days

days(<value1> : integer) => long

Duración en milisegundos durante 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. Puede usar un segundo argumento (opcional) para especificar qué conjunto de caracteres se va a usar. Algunos ejemplos son US-ASCII, ISO-8859-1, UTF-8 (valor predeterminado), UTF-16BE, UTF-16LEy 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 denseRank función funciona incluso cuando los datos no están ordenados y buscan 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 se va a usar. Algunos ejemplos son US-ASCII, ISO-8859-1, UTF-8 (valor predeterminado), UTF-16BE, UTF-16LEy 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

Usa el operador de comparación es 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

Usa el operador de comparación es igual que, ignorando 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, htmly 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, que es la misma que escribir esta expresión en una forma no literal. Puede usarlo 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. Use la función syntax(false()) si una columna se denomina 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 en 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. Toma una función de filtro donde puede acceder al elemento de la matriz como #item. En el caso de asignaciones con anidaciones muy profundas, puede consultar las asignaciones primarias usando la notación #item_n (#item_1, #item_2...).

  • find([10, 20, 30], #item > 10) -> 20
  • find(['azure', 'data', 'factory'], length(#item) > 4) -> 'azure'
  • find([ @( name = 'Daniel', types = [ @(mood = 'jovial', behavior = 'terrific'), @(mood = 'grumpy', behavior = 'bad') ] ), @( name = 'Mark', types = [ @(mood = 'happy', behavior = 'awesome'), @(mood = 'calm', behavior = 'reclusive') ] ) ], contains(#item.types, #item.mood=='happy') /*Filter out the happy kid*/ )
  • @( name = 'Mark', types = [ @(mood = 'happy', behavior = 'awesome'), @(mood = 'calm', behavior = 'reclusive') ] )

first

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

Obtiene el primer valor de un grupo de columnas. Si se omite el segundo parámetro ignoreNulls, Data Factory asume falso.

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

flatten

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

Aplana una matriz o bien varias matrices en una sola matriz. 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 codificada en base64 específica. 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 desde UTC. Opcionalmente, puede pasar la zona horaria en forma de GMT, PST, UTCo America/Cayman. El valor por defecto es la zona horaria actual. Consulte la clase SimpleDateFormat de Java para conocer los formatos disponibles.

  • 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

Usa el 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

Usa el 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 mayor valor entre la lista de valores como entrada, omitiendo 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. Nombres de columna de dirección conocidos en tiempo de diseño por sus nombres. No se admiten entradas calculadas, pero puede usar sustituciones de parámetros.

  • hasColumn('parent')

hasError

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

Comprueba si el activo con un identificador proporcionado está indicado como erróneo.

Examples

  • 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 o rutas de acceso de las columnas conocidos en tiempo de diseño solo deben abordarse usando su nombre o la ruta de acceso con notación de puntos. No se admiten entradas calculadas, pero puede 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 hora de una marca de tiempo. Puede pasar una zona horaria opcional en forma de GMT, PST, UTCo America/Cayman. La zona horaria local se usa como valor predeterminado. Consulte la clase SimpleDateFormat de Java para conocer los formatos disponibles.

  • hour(toTimestamp('2009-07-30 12:58:59')) -> 12
  • hour(toTimestamp('2009-07-30 12:58:59'), 'PST') -> 12

hours

hours(<value1> : integer) => long

Obtiene la 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

Aplica un valor u otro en función de una condición. Si el otro no está especificado, el valor se considera NULL. Ambos valores deben ser compatibles (como numeric y string).

  • 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

Devuelve el primer elemento no NULL cuando se proporcionan dos o más entradas. Esta función es equivalente a la coalesce función .

  • 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. Si no se encuentra, 0 se devuelve.

  • 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 una posición de bit está establecida en este conjunto de bits.

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

isBoolean

isBoolean(<value1>: string) => boolean

Comprueba si el valor de cadena es un valor booleano según las reglas de toBoolean().

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

isByte

isByte(<value1> : string) => boolean

Comprueba si el valor de cadena es un valor de byte cuando se proporciona un formato opcional según las reglas de toByte().

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

isDate

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

Comprueba si la cadena de fecha de entrada es una fecha mediante 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

Comprueba si el valor de cadena es un valor decimal cuando se proporciona 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 se debe eliminar la fila. En el caso de las transformaciones que toman más de un flujo de entrada, puede pasar el índice (basado en 1) del flujo. El índice de flujo debe ser 1 o 2y 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 un valor distinto.

  • isDistinct(custId, custName) => boolean

isDouble

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

Comprueba si el valor de cadena es un valor doble cuando se proporciona 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 está marcada como un error. En el caso de las transformaciones que toman más de un flujo de entrada, 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

Comprueba si el valor de cadena es un valor float cuando se proporciona 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 se debe omitir la fila. 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 2y el valor predeterminado es 1.

  • isIgnore()
  • isIgnore(1)

isInsert

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

Comprueba si la fila está marcada para insertar. Para las transformaciones que utilizan más de un flujo de entrada, puede pasar el índice del flujo (con base en 1). El índice de flujo debe ser 1 o 2y el valor predeterminado es 1.

  • isInsert()
  • isInsert(1)

isInteger

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

Comprueba si el valor de cadena es un valor entero cuando se proporciona 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

Comprueba si el valor de cadena es un valor largo cuando se proporciona 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 2y el valor predeterminado es 1.

  • isMatch()
  • isMatch(1)

isNan

isNan (<value1> : integral) => boolean

Comprueba si el valor 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

Comprueba si el valor de cadena es un valor corto cuando se proporciona 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

Comprueba si la cadena de fecha de entrada es una marca de tiempo mediante un formato opcional de marca de tiempo de entrada. Consulte la clase SimpleDateFormat de Java para conocer los formatos disponibles. Si se omite la marca de tiempo, se usa el patrón yyyy-[M]M-[d]d hh:mm:ss[.f...] predeterminado. Puede pasar una zona horaria opcional en forma de GMT, PST, UTCo America/Cayman. La timestamp función 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 2y 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 2y 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

Obtiene la curtosis de una columna según criterios.

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

L

lag

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

Obtiene el valor de las primeras filas evaluadas n del parámetro antes de la fila actual. El segundo parámetro es el número de filas hacia atrás que se deben tomar en cuenta, 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 se omite el segundo parámetro ignoreNulls , se supone que es false.

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

lastDayOfMonth

lastDayOfMonth(<value1> : datetime) => date

Obtiene la última fecha del mes cuando se le asigna 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

Usa el 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 una subcadena que comienza 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

Usa el operador de comparación menor. 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

Usa el 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

Usa un patrón de cadena que coincide literalmente. Las excepciones son los siguientes símbolos especiales: _ coincide con cualquier carácter de la entrada (similar a .* en posix expresiones regulares). % coincide con cero o más caracteres en la entrada (como .* en expresiones regulares de posix). 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 subcadena dentro de una cadena que comienza en una posición determinada. Si se omite la posición, comienza desde el principio de la cadena. Si no se encuentra, 0 se devuelve.

  • 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. Puede proporcionar una base opcional o, si se usa, un número de Euler.

  • 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

A la izquierda se rellena la cadena por el relleno proporcionado hasta que la cadena tiene una longitud determinada. Si la cadena es igual o mayor que la longitud, la cadena se recorta a 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 el segundo parámetro no está especificado, recorta el espacio en blanco. De lo contrario, 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 map funció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. Adopta una función de asignación donde puede referirse al elemento como #key y al valor 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 condicionalmente una matriz a otra matriz de la misma longitud o menor. Los valores pueden ser de cualquier tipo de datos, incluido structTypes. Toma una función de mapeo que permite direccionar el elemento de la matriz como #item y el índice actual como #index. Para los mapas profundamente anidados, puede hacer referencia a los mapas primarios 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. La map función espera una referencia a un elemento de 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. Toma una función de asignación donde puede acceder al índice de la matriz como #index. En el caso de asignaciones con anidaciones muy profundas, puede consultar las asignaciones primarias usando 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

Obtiene el valor máximo de una columna, en función de los criterios.

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

md5

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

Calcula la síntesis MD5 de un conjunto de columnas de distintos tipos de datos primitivos y devuelve una cadena hexadecimal de 32 caracteres. Puede usarlo 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

Obtiene la media de valores de una columna, basándose en criterios. 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, UTCo America/Cayman. La zona horaria local se usa como valor predeterminado. Consulte la clase SimpleDateFormat de Java para conocer los formatos disponibles.

  • millisecond(toTimestamp('2009-07-30 12:58:59.871', 'yyyy-MM-dd HH:mm:ss.SSS')) -> 871

milliseconds

milliseconds(<value1> : integer) => long

Calcula la duración en milisegundos a partir de una cantidad dada 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

Obtiene el valor mínimo de una columna, en función de los criterios.

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

minus

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

Resta números. Resta el número de días a una fecha. Resta la duración a 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 minuto de una marca de tiempo. Puede pasar una zona horaria opcional en forma de GMT, PST, UTCo America/Cayman. La zona horaria local se usa como valor predeterminado. Consulte la clase SimpleDateFormat de Java para conocer los formatos disponibles.

  • minute(toTimestamp('2009-07-30 12:58:59')) -> 58
  • minute(toTimestamp('2009-07-30 12:58:59'), 'PST') -> 58

minutes

minutes(<value1> : integer) => long

Obtiene la 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

Obtiene el módulo de un 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 marca temporal.

  • 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, UTCo America/Cayman. La zona horaria local se usa como valor predeterminado. Consulte la clase SimpleDateFormat de Java para conocer los formatos disponibles.

  • monthsBetween(toTimestamp('1997-02-28 10:30:00'), toDate('1996-10-30')) -> 3.94959677

multiply

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

Multiplica un par de números. Igual que el operador *.

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

N

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 solo es consecutivo dentro de una partición y tiene el prefijo id. de partición.

  • nextSequence() == 12313112 -> false

normalize

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

Normaliza el valor de cadena para separar los caracteres Unicode acentuados.

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

not

not(<value1> : boolean) => boolean

Usa el operador de negación lógica.

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

notEquals

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

Usa el operador de comparación no es igual que. Igual que el operador !=.

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

nTile

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

La nTile función divide las filas de cada partición de ventana en n cubos que van desde 1 hasta como máximo n. Los valores de bucket difieren, como máximo, en 1. 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 estándar tiene una fila adicional añadida. 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 cambia el cubo (bucketThreshold). Cuando el número de fila actual alcanza el umbral del cubo, el valor del cubo aumenta en uno. El umbral aumenta según el tamaño del cubo (más uno adicional si el cubo actual está rellenado).

  • nTile()
  • nTile(numOfBuckets)

null

null() => null

Devuelve un NULL valor. Use la función syntax(null()) si una columna se denomina null. Cualquier operación que use null da como resultado un NULL valor.

  • 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

Usa el 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 partición actual en el que se encuentra la fila de entrada.

  • partitionId()

pMod

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

Proporciona el módulo positivo de un 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 los grados en radianes.

  • radians(180) => 3.141592653589793

random

random(<value1> : integral) => double

Devuelve un número aleatorio cuando se proporciona una semilla dentro de una partición. La semilla debe ser un valor fijo y se usa con el identificador de partición para generar valores aleatorios en un intervalo (0.0-1.0).

  • 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 producen lagunas en la secuencia. La rank función funciona incluso cuando los datos no están ordenados y buscan cambios en los valores.

  • rank()

reassociate

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

Transforma una asignación al asociar las claves a nuevos valores. Adopta una función de asignación donde puede referirse al elemento como #key y al valor 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. La función reduce espera una referencia a un acumulador y un elemento de la primera función de expresión como #acc y #item. Espera que el valor #result resultante se use 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 regex determinado. El último parámetro identifica el grupo de coincidencias y el valor predeterminado es 1 si se omite. Use <regex> para que coincida con una cadena sin escape. El índice 0 retorna todas las coincidencias. Sin grupos de coincidencias, el índice 1 y las versiones posteriores no devuelven 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> 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 apariciones de un patrón regex por otra subcadena en la cadena específica. Use <regex> 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 apariciones de una subcadena por otra subcadena de la cadena específica. 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(<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 cuando se proporciona una escala opcional y un modo de redondeo opcional. Si se omite la escala, el valor predeterminado es 0. Si se omite el modo, el valor predeterminado es ROUND_HALF_UP(5). Los valores de redondeo incluyen:

  1. ROUND_UP: modo de redondeo en dirección contraria a cero.

  2. ROUND_DOWN: modo de redondeo hacia cero.

  3. ROUND_CEILING: modo redondeo hacia el infinito positivo. (Igual que ROUND_UP si la entrada es positiva. Si es negativo, se comporta como ROUND_DOWN. Por ejemplo, -1.1 sería -1.0 con ROUND_CEILING y -2 con ROUND_UP).

  4. ROUND_FLOOR: modo redondeo hacia el infinito negativo. (Igual que ROUND_DOWN si la entrada es positiva. Si es negativo, se comporta como ROUND_UP.

  5. ROUND_HALF_UP: modo de redondeo para redondear hacia el "vecino más cercano", salvo cuando ambos vecinos están a igual distancia, en cuyo caso actúa como ROUND_UP. (Más común + valor predeterminado para Dataflow).

  6. ROUND_HALF_DOWN: modo de redondeo para redondear hacia "vecino más cercano" a menos que ambos vecinos sean equidistantes, en cuyo caso ROUND_DOWN.

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

  8. 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

A la derecha se rellena la cadena por el relleno proporcionado hasta que la cadena tiene una longitud determinada. Si la cadena es igual o mayor que la longitud, la cadena se recorta a 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 el segundo parámetro no está especificado, recorta el espacio en blanco. De lo contrario, 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, UTCo America/Cayman. La zona horaria local se usa como valor predeterminado. Consulte la clase SimpleDateFormat de Java para conocer los formatos disponibles.

  • second(toTimestamp('2009-07-30 12:58:59')) -> 59

seconds

seconds(<value1> : integer) => long

Proporciona la duración en milisegundos para el número de segundos.

  • seconds(2) -> 2000L

setBitSet

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

Establece posiciones de bits en este conjunto de bits.

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

sha1

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

Calcula la síntesis SHA-1 de un conjunto de columnas de distintos tipos de datos primitivos y devuelve una cadena hexadecimal de 40 caracteres. Puede usarlo 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 SHA-2 de un conjunto de columnas de distintos tipos de datos primitivos cuando se da una longitud de bits, que solo puede ser de valores 0(256), 224, 256, 384y 512. Puede usarlo 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 mapa.

  • 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

Obtiene la asimetría de una columna según ciertos criterios.

  • 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 se omite la longitud, el valor predeterminado es el final de la cadena.

  • 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. La sort función 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

Obtiene la desviación estándar de una columna, en función de los criterios.

  • 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

Obtiene la desviación estándar de población de una columna, en función de los criterios.

  • 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

Obtiene la desviación estándar de ejemplo de una columna, en función de los criterios.

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

subDays

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

Resta días de una marca de fecha o hora. 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 de una marca de fecha o hora.

  • 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 está basada en un índice que comienza en 1. Si se omite la longitud, el valor predeterminado es el final de la cadena.

  • 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><delimitador>substringIndex( : string, : string, <recuento de apariciones de delimitadores> : integral]) => string

Extrae la subcadena antes de contar repeticiones del delimitador. Si el recuento es positivo, se devuelve todo a la izquierda del delimitador final (contando desde la izquierda). Si el recuento es negativo, se devuelve todo 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

Obtiene la suma agregada de una columna numérica, basada en criterios. 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

Obtiene la suma agregada de una columna numérica, basada en criterios. 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 específica 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 hora o cadena en representación binaria.

  • toBinary(3) -> [0x11]

toBoolean

toBoolean(<value1> : string) => boolean

Convierte un valor de (t, , truey, 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. Puede usar 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 una cadena de fecha de entrada a fecha mediante 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* ].

  • 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). Puede usar un formato decimal de Java opcional para la conversión. Use un formato de configuración regional opcional en forma de lenguaje BCP47, como en-US, de o 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. Puede usar un formato decimal de Java opcional para la conversión. Use un formato de configuración regional opcional en forma de lenguaje BCP47, como en-US, de o 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. Puede usar 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. Puede usar 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. Puede usar 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 principales N 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. Puede usar 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. Puede especificar un formato para números y fechas. Si no se especifica, se selecciona el valor predeterminado del sistema. El formato decimal de Java se usa para números. Consulte la clase SimpleDateFormat de Java para conocer los formatos disponibles. El formato predeterminado es yyyy-MM-dd. Para una marca de fecha o hora, 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 cuando se proporciona un formato opcional de marca de tiempo. Si se omite la marca de tiempo, se usa el patrón yyyy-[M]M-[d]d hh:mm:ss[.f...] predeterminado. Puede pasar una zona horaria opcional en forma de GMT, PST, UTCo America/Cayman. La timestamp función admite una precisión de hasta milisegundos con un valor de 999. Consulte la clase SimpleDateFormat de Java para conocer los formatos disponibles.

  • 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, UTCo America/Cayman. El valor por defecto es la zona horaria actual. Consulte la clase SimpleDateFormat de Java para conocer los formatos disponibles.

  • 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 uno a uno.

  • 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 el segundo parámetro no está especificado, recorta el espacio en blanco. De lo contrario, 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 una columna se denomina 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. La función number coincide con short, integer, long, double, float o decimal. La función integral coincide con short, integer, long. La función fractional coincide con double, float y decimal. La función datetime coincide con el tipo de marca de fecha o hora.

  • 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 de los formatos aceptables son json, xml, ecmascript, htmly 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. Puede usarlo 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

Obtiene la varianza de una columna, basada en criterios.

  • 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

Obtiene la varianza poblacional de los valores en una columna, en función de los criterios.

  • 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

Obtiene la varianza no sesgada de una columna, basada en criterios.

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

W

weekOfYear

weekOfYear(<value1> : datetime) => integer

Obtiene la semana del año cuando se le asigna una fecha.

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

weeks

weeks(<value1> : integer) => long

Obtiene la duración en milisegundos para el número de semanas.

  • weeks(2) -> 1209600000L

X

xor

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

Usa el operador lógico XOR . 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