Expresiones de transformación de datos en Asignación de Data Flow

SE APLICA A: Azure Data Factory Azure Synapse Analytics

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 este artículo se proporcionan detalles sobre las expresiones y funciones compatibles con Azure Data Factory y Azure Synapse Analytics en los flujos de datos de asignación.

Funciones de expresiones

En las canalizaciones de Data Factory y Synapse, use el lenguaje de expresiones de la característica de flujo de datos de asignación para configurar transformaciones de datos.

Función de expresión Tarea
abs El valor absoluto de un número.
acos Calcula un valor inverso de coseno.
add Agrega un par de cadenas o números. Agrega una fecha a un número de días. Agrega una vigencia a una marca de tiempo. Anexa una matriz de tipo similar a otra. Igual que el operador +.
addDays Agrega días a una fecha o marca de tiempo. Igual que el operador + para la fecha.
addMonths Suma meses a una fecha o marca de tiempo. Opcionalmente, puede pasar una zona horaria.
and Operador lógico AND. Igual que &&.
asin Calcula un valor inverso de seno.
atan Calcula un valor inverso de tangente.
atan2 Devuelve el ángulo en radianes entre el eje X positivo de un plano y el punto que especificaron las coordenadas.
between 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
bitwiseAnd Operador AND bit a bit entre tipos enteros. Igual que el operador &
bitwiseOr Operador OR bit a bit entre tipos enteros. Igual que el operador |
bitwiseXor Operador OR bit a bit entre tipos enteros. Igual que el operador |
blake2b 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 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.
case 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.
cbrt Calcula la raíz cúbica de un número.
ceil Devuelve el entero más pequeño no menor que el número.
coalesce Devuelve el primer valor no NULL de un conjunto de entradas. Todas las entradas deben ser del mismo tipo.
columnNames Obtiene los nombres de todas las columnas de salida de una secuencia. Puede pasar un nombre de secuencia opcional como segundo argumento.
columns Obtiene los valores de todas las columnas de salida de una secuencia. Puede pasar un nombre de secuencia opcional como segundo argumento.
compare Compara dos valores del mismo tipo. Devuelve un entero negativo si value1 < value2, 0 si value1 == value2, un valor positivo si value1 > value2.
concat Concatena un número variable de cadenas. Igual que el operador + con cadenas.
concatWS Concatena un número variable de cadenas con un separador. El primer parámetro es el separador.
cos Calcula un valor de coseno.
cosh Calcula un coseno hiperbólico de un valor.
crc32 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.
currentDate 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 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.
currentTimestamp Obtiene la marca de tiempo actual cuando se inicia el trabajo para ejecutarse con la zona horaria local.
currentUTC 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". 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. Para convertir la zona horaria UTC a una distinta, use fromUTC().
dayOfMonth Obtiene el día del mes dada una fecha.
dayOfWeek Obtiene el día de la semana dada una fecha. 1 corresponde al domingo, 2 al lunes... y 7 al sábado.
dayOfYear Obtiene el día del año dada una fecha.
days Duración en milisegundos para el número de días.
degrees Convierte radianes en grados.
divide Divide dos números. Igual que el operador /.
dropLeft 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.
dropRight 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.
endsWith Comprueba si la cadena finaliza con la cadena proporcionada.
equals Operador de comparación igual que. Igual que el operador ==.
equalsIgnoreCase Operador de comparación igual que, sin distinción entre mayúsculas y minúsculas. Igual que el operador <=>.
escape Escapa una cadena según un formato. Los valores literales para el formato aceptable son "json", "xml", "ecmascript", "html", "java".
expr Da como resultado una expresión de una cadena. Esto es lo mismo que escribir esta expresión de forma no literal. Se puede usar para pasar parámetros como representaciones de cadena.
factorial Calcula el valor factorial de un número.
false Siempre devuelve un valor false. Utilice la función syntax(false()) si hay una columna denominada "false".
floor Devuelve el entero más grande no mayor que el número.
fromBase64 Descodifica la cadena con codificación base64 especificada.
fromUTC 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". 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.
greater Operador de comparación mayor que. Igual que el operador >.
greaterOrEqual Operador de comparación mayor que o igual que. Igual que el operador >=.
greatest Devuelve el valor mayor entre la lista de valores como entrada, omitiendo los valores NULL. Devuelve NULL si todas las entradas son NULL.
hasColumn Comprueba un valor de columna por el nombre en la secuencia. Puede pasar un nombre de flujo opcional como segundo argumento. Los nombres de columna que se conocen en tiempo de diseño deben tratarse simplemente por su nombre. No se admiten entradas calculadas, pero se pueden usar sustituciones de parámetros.
hour 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.
hours Duración en milisegundos para el número de horas.
iif Basándose en una condición, aplica un valor o el otro. Si "Otro" si no se especifica, se considera NULL. Ambos valores deben ser compatibles (numéricos, cadena...).
iifNull Comprueba si el primer parámetro es NULL. Si no es NULL, se devuelve el primer parámetro. Si es NULL, se devuelve el segundo parámetro. Si se especifican tres parámetros, el comportamiento es el mismo que iif(isNull(value1), value2, value3) y se devuelve el tercer parámetro si el primer valor no es NULL.
initCap Convierte la primera letra de cada palabra en mayúsculas. Las palabras se identifican como separadas por espacios en blanco.
instr Busca la posición (basada en 1) de la subcadena dentro de una cadena. Se devuelve 0 si no se encuentra.
isDelete 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.
isError 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.
isIgnore 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.
isInsert 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.
isMatch 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.
isNull Comprueba si el valor es NULL.
isUpdate 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.
isUpsert 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.
jaroWinkler Obtiene la distancia de JaroWrinkler entre dos cadenas.
lastDayOfMonth Obtiene el último día del mes dada una fecha.
least Operador de comparación menor que o igual que. Igual que el operador <=.
left Extrae un inicio de la subcadena en el índice 1 con el número de caracteres. Igual que SUBSTRING(str, 1, n).
length Devuelve la longitud de la cadena.
lesser Operador de comparación menor que. Igual que el operador <.
lesserOrEqual Operador de comparación menor que o igual que. Igual que el operador <=.
levenshtein Obtiene la distancia de edición entre dos cadenas.
like El patrón es una cadena que se hace coincidir literalmente. La excepción son los siguientes símbolos especiales: _ coincide con cualquier carácter en la entrada (similar a . en expresiones regulares posix).
locate Busca la posición (basada en 1) de la subcadena dentro de una cadena a partir de una posición determinada. Si la posición se omite se considera desde el principio de la cadena. Se devuelve 0 si no se encuentra.
log Calcula el valor del logaritmo. Se puede suministrar una base opcional o un número de Euler si se usa.
log10 Calcula el valor del logaritmo en base 10.
lower Pone en minúsculas una cadena.
lpad 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.
ltrim 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.
md5 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.
millisecond 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.
milliseconds Duración en milisegundos para el número de milisegundos.
minus 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 -.
minute 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.
minutes Duración en milisegundos para el número de minutos.
mod Módulo de par de números. Igual que el operador %.
month Obtiene el valor del mes de una fecha o una marca de tiempo.
monthsBetween Obtiene el número de meses entre dos fechas. Puede redondear el cálculo. Puede pasar una zona horaria opcional con el formato "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.
multiply Multiplica dos números. Igual que el operador *.
negate Niega un número. Convierte los números positivos en negativos y viceversa.
nextSequence 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.
normalize Normaliza el valor de la cadena para separar caracteres Unicode acentuados.
not Operador de negación lógica.
notEquals Operador de comparación no igual que. Igual que el operador !=.
notNull Comprueba si el valor no es 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.
or Operador lógico OR. Igual que ||.
pMod Módulo positivo de par de números.
partitionId Devuelve el identificador de la partición actual en donde se encuentra la fila de entrada.
power Eleva un número a la potencia de otro.
radians Convierte grados en radianes.
random 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 junto con partitionId para generar valores aleatorios.
regexExtract 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.
regexMatch 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.
regexReplace 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.
regexSplit Divide una cadena según un delimitador basándose en la expresión regular y devuelve una matriz de cadenas.
replace 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.
reverse Invierte una cadena.
right Extrae una subcadena con el número de caracteres de la derecha. Igual que SUBSTRING(str, LENGTH(str) - n, n).
rlike Comprueba si la cadena coincide con el patrón de expresión regular especificado.
round 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 forma predeterminada. Si el modo se omite, se establece en ROUND_HALF_UP(5) de forma predeterminada. Los valores de redondeo incluyen
rpad 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.
rtrim 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.
second 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.
segundos Duración en milisegundos para el número de segundos.
sha1 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.
sha2 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.
sin Calcula un valor de seno.
sinh Calcula un valor de seno hiperbólico.
soundex Obtiene el código soundex de la cadena.
split Divide una cadena según un delimitador y devuelve una matriz de cadenas.
sqrt Calcula la raíz cuadrada de un número.
startsWith Comprueba si la cadena comienza por la cadena proporcionada.
subDays Resta días de una fecha o una marca de tiempo. Igual que el operador - para la fecha.
subMonths Resta meses a una fecha o marca de tiempo.
substring 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.
tan Calcula un valor de tangente.
tanh Calcula un valor de tangente hiperbólica.
translate Reemplaza un conjunto de caracteres por otro conjunto de caracteres de la cadena. Los caracteres tienen un reemplazo de 1 a 1.
trim 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.
true Siempre devuelve un valor true. Use la función syntax(true()) si hay una columna denominada "true".
typeMatch Coincide con el tipo de la columna. Solo se puede usar en expresiones de patrón. "number" coincide con los tipos short, entero, long, double, float o decimal; "integral" coincide con los tipos short, entero y long; "fractional" coincide con los tipos double, float y decimal; "datetime" coincide con los tipos de date o timestamp.
unescape Elimina el escape de una cadena según un formato. Los valores literales para el formato aceptable son "json", "xml", "ecmascript", "html", "java".
upper Pone en mayúsculas una cadena.
uuid Devuelve el UUID generado.
weekOfYear Obtiene la semana del año dada una fecha.
weeks Duración en milisegundos para el número de semanas.
xor Operador XOR lógico. Igual que el operador ^.
year Obtiene el valor de año de una fecha.

Funciones de agregado

Las siguientes funciones solo están disponibles para las transformaciones de agregado, dinamización, anulación de dinamización y ventana.

Aggregate, función Tarea
approxDistinctCount Obtiene el recuento agregado aproximado de valores distintos para una columna. El segundo parámetro opcional es controlar el error de estimación.
avg Obtiene el promedio de valores de una columna.
avgIf En función de los criterios, obtiene el promedio de valores de una columna.
collect 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 será igual al número de filas de ese grupo y puede contener valores NULL. El número de elementos recopilados debe ser pequeño.
count Obtiene el recuento agregado de valores. Si se especifican las columnas opcionales, omite los valores NULL en el recuento.
countDistinct Obtiene el recuento agregado de valores distintos de un conjunto de columnas.
countIf 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.
covariancePopulation Obtiene la covarianza de la población entre dos columnas.
covariancePopulationIf En función de los criterios, obtiene la covarianza de la población de dos columnas.
covarianceSample Obtiene la covarianza de muestra de dos columnas.
covarianceSampleIf En función de los criterios, obtiene la covarianza de muestra de dos columnas.
first Obtiene el primer valor de un grupo de columnas. Si el segundo parámetro ignoreNulls se omite, se supone que es falso.
isDistinct Busca si una columna o un conjunto de columnas es distinto. No cuenta NULL como valor distinto
kurtosis Obtiene la curtosis de una columna.
kurtosisIf En función de los criterios, obtiene la curtosis de una columna.
last Obtiene el último valor de un grupo de columnas. Si el segundo parámetro ignoreNulls se omite, se supone que es falso.
max Obtiene el valor máximo de una columna.
maxIf En función de los criterios, obtiene el valor máximo de una columna.
mean Obtiene la media de valores de una columna. Igual que AVG.
meanIf En función de los criterios, obtiene la media de valores de una columna. Igual que avgIf.
min Obtiene el valor mínimo de una columna.
minIf En función de los criterios, obtiene el valor mínimo de una columna.
skewness Obtiene la asimetría de una columna.
skewnessIf En función de los criterios, obtiene la asimetría de una columna.
stddev Obtiene la desviación estándar de una columna.
stddevIf En función de los criterios, obtiene la desviación estándar de una columna.
stddevPopulation Obtiene la desviación estándar de población de una columna.
stddevPopulationIf En función de los criterios, obtiene la desviación estándar de población de una columna.
stddevSample Obtiene la desviación estándar de muestra de una columna.
stddevSampleIf En función de los criterios, obtiene la desviación estándar de muestra de una columna.
sum Obtiene la suma de agregados de una columna numérica.
sumDistinct Obtiene la suma de agregados de valores distintos de una columna numérica.
sumDistinctIf 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 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.
variance Obtiene la varianza de una columna.
varianceIf En función de los criterios, obtiene la varianza de una columna.
variancePopulation Obtiene la varianza de población de una columna.
variancePopulationIf En función de los criterios, obtiene la varianza de población de una columna.
varianceSample Obtiene la varianza no sesgada de una columna.
varianceSampleIf En función de los criterios, obtiene la varianza no sesgada de una columna.

Funciones de matriz

Las funciones de matriz realizan transformaciones sobre estructuras de datos que son matrices. Estas incluyen palabras clave especiales para direccionar elementos de matriz e índices:

  • #acc representa un valor que se desea incluir en la salida única al reducir una matriz.
  • #index representa el índice de la matriz actual, junto con los números de índice de la matriz #index2, #index3 ....
  • #item representa el valor del elemento actual de la matriz.
Función de matriz Tarea
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 [].
at 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.
contains 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.
distinct Devuelve un conjunto distinto de elementos de una matriz.
except Devuelve un conjunto de diferencias de una matriz desde otros duplicados eliminados.
filter 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.
find Find the first item from an array that match the condition. 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.
flatten 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.
in Comprueba si un elemento está en la matriz.
intersect Devuelve un conjunto de intersección de elementos distintos de dos matrices.
map 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.
mapIf 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...).
mapIndex 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.
mapLoop 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...).
reduce 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.
size Busca el tamaño de una matriz o un tipo de asignación.
slice 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.
sort 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.
unfold Despliega una matriz en un conjunto de filas y repite los valores de las columnas restantes en cada fila.
union Devuelve un conjunto de uniones de elementos distintos de dos matrices.

Funciones de búsqueda almacenadas en caché

Las siguientes funciones solo están disponibles cuando se usa una búsqueda almacenada en caché y ha incluido un receptor almacenado en caché.

Función de búsqueda almacenada en caché Tarea
lookup Busca la primera fila del receptor almacenado en caché con las claves especificadas, que coinciden con las claves del receptor almacenado en caché.
mlookup Busca todas las filas coincidentes del receptor almacenado en caché con las claves especificadas, que coinciden con las claves del receptor almacenado en caché.
output Devuelve la primera fila de los resultados del receptor almacenado en caché .
outputs Devuelve el conjunto completo de filas de salida de los resultados del receptor almacenado en caché .

Funciones de conversión

Las funciones de conversión se usan para convertir datos y probar tipos de datos.

Función de conversión Tarea
isBitSet Comprueba si se establece una posición de bit en este conjunto de bits .
setBitSet Establece las posiciones de bit en este conjunto de bits .
isBoolean Permite comprobar si el valor de la cadena es booleano según las reglas de toBoolean().
isByte Permite comprobar si el valor de la cadena es un byte con un formato opcional según las reglas de toByte().
isDate Permite comprobar si la cadena de fecha de entrada es una fecha con un formato de fecha de entrada opcional. Consulte 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* ].
isShort Permite comprobar si el valor de la cadena es un elemento corto con un formato opcional según las reglas de toShort().
isInteger Permite comprobar si el valor de la cadena es un elemento entero con un formato opcional según las reglas de toInteger().
isLong Permite comprobar si el valor de la cadena es un elemento largo con un formato opcional según las reglas de toLong().
isNan Comprueba si no es un número.
isFloat Permite comprobar si el valor de la cadena es un elemento flotante con un formato opcional según las reglas de toFloat().
isDouble Permite comprobar si el valor de la cadena es un elemento doble con un formato opcional según las reglas de toDouble().
isDecimal Permite comprobar si el valor de la cadena es un elemento decimal con un formato opcional según las reglas de toDecimal().
isTimestamp 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.
toBase64 Codifica la cadena especificada en Base64.
toBinary Convierte cualquier valor numérico/fecha/marca de tiempo/cadena en una representación binaria.
toBoolean 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.
toByte 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.
toDate 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* ].
toDecimal Convierte cualquier valor numérico o cadena en un valor decimal. Si no se especifican la precisión y la escala, se utiliza el valor predeterminado (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.
toDouble 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.
toFloat 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.
toInteger 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.
toLong 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.
toShort 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.
toString 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.
toTimestamp 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.
toUTC 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.

Funciones de asignación

Las funciones de asignación realizan operaciones en tipos de datos de asignación

Función de asignación Tarea
associate Crea una asignación de clave/valores. Todas las claves y valores deben ser del mismo tipo. Si no se especifica ningún elemento, su 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.
keyValues 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.
mapAssociation 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.
reassociate 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.

Metafunciones

Las metafunciones aparecen principalmente en los metadatos del flujo de datos.

Metafunción Tarea
byItem Busque un subelemento en una estructura o matriz de estructuras; si hay varias coincidencias, se devuelve la primera coincidencia. Si no hay coincidencias, se devuelve un valor NULL. El tipo del valor devuelto debe haberse convertido mediante una de las acciones de conversión de tipo (? fecha, ? cadena ...). Los nombres de columna que se conocen en tiempo de diseño deben tratarse simplemente por su nombre. No se admiten entradas calculadas, pero se pueden usar sustituciones de parámetros.
byOrigin 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...). Los nombres de columna que se conocen en tiempo de diseño deben tratarse simplemente por su nombre. No se admiten entradas calculadas, pero se pueden usar sustituciones de parámetros.
byOrigins 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...). Los nombres de columna que se conocen en tiempo de diseño deben tratarse simplemente por su nombre. No se admiten entradas calculadas, pero se pueden usar sustituciones de parámetros.
byName Selecciona un valor de columna por el nombre en la secuencia. Puede pasar un nombre de flujo 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...). Los nombres de columna que se conocen en tiempo de diseño deben tratarse simplemente por su nombre. No se admiten entradas calculadas, pero se pueden usar sustituciones de parámetros.
byNames Seleccione una matriz de columnas por nombre en la secuencia. Puede pasar un nombre de flujo 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, etc.). Los nombres de columna que se conocen en tiempo de diseño deben tratarse simplemente por su nombre. No se admiten entradas calculadas, pero se pueden usar sustituciones de parámetros.
byPath 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.
byPosition 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.
hasPath 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.
originColumns Obtiene todas las columnas de salida de un flujo de origen donde se crearon columnas. Debe incluirse en otra función.
hex Devuelve una representación de cadena hexa de un valor binario .
unhex Deshace la representación hexa de un valor binario de su representación de cadena. Se puede usar junto con SHA2, MD5 para convertir de cadena a representación binaria .

Funciones de ventana

Las siguientes funciones solo están disponibles en las transformaciones de ventana.

Función de ventana Tarea
cumeDist 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. Cualquier valor de empate en la ordenación se evaluará en la misma posición.
denseRank 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 generarán intervalos en la secuencia. La clasificación densa funciona incluso cuando los datos no están ordenados y busca cambios en los valores.
lag 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.
lead 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.
nTile 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).
rank 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 no está ordenada y busca cambios en los valores.
rowNumber Asigna una numeración secuencial de filas para las filas en una ventana que comienzan con 1.

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.

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 un número de 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'

asin

asin(<value1> : number) => double

Calcula un valor inverso de seno.

  • asin(0) -> 0.0

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, su 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)

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 en una estructura o matriz de estructuras; si hay varias coincidencias, se devuelve la primera coincidencia. Si no hay coincidencias, se devuelve un valor NULL. El tipo del valor devuelto debe haberse convertido mediante una de las acciones de conversión de tipo (? fecha, ? cadena ...). Los nombres de columna que se conocen en tiempo de diseño deben tratarse simplemente 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 flujo 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...). Los nombres de columna que se conocen en tiempo de diseño deben tratarse simplemente 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 flujo 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, etc.). Los nombres de columna que se conocen en tiempo de diseño deben tratarse simplemente 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...). Los nombres de columna que se conocen en tiempo de diseño deben tratarse simplemente 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...). Los nombres de columna que se conocen en tiempo de diseño deben tratarse simplemente 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))

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

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 será 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> : string) => array

Obtiene los nombres de todas las columnas de salida de una secuencia. Puede pasar un nombre de secuencia opcional como segundo argumento.

  • columnNames()
  • columnNames('DeriveStream')

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, 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 las columnas opcionales, omite los valores NULL en el recuento.

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

countDistinct

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

Obtiene el recuento agregado de valores distintos de un conjunto de columnas.

  • countDistinct(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. Cualquier valor de empate en la ordenación se evaluará 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 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.

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

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

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 generarán intervalos 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) => '' ___

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 de forma no literal. Se puede usar para pasar parámetros como representaciones de cadena.

  • expr(‘price * discount’) => any ___

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

Find the first item from an array that match the condition. 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') ] )

* @( 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 el segundo parámetro ignoreNulls se omite, se supone que es falso.

  • 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) => string

Descodifica la cadena con codificación base64 especificada.

  • fromBase64('Z3VuY2h1cw==') -> 'gunchus'

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

  • fromUTC(currentTimestamp()) == toTimestamp('2050-12-12 19:18:12') -> false
  • fromUTC(currentTimestamp(), 'Asia/Seoul') != toTimestamp('2050-12-12 19:18:12') -> true

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')

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 flujo opcional como segundo argumento. Los nombres de columna que se conocen en tiempo de diseño deben tratarse simplemente por su nombre. No se admiten entradas calculadas, pero se pueden usar sustituciones de parámetros.

  • hasColumn('parent')

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

iif

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

Basándose en una condición, aplica un valor o el otro. Si "Otro" si no se especifica, se considera NULL. Ambos valores deben ser compatibles (numéricos, 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

Comprueba si el primer parámetro es NULL. Si no es NULL, se devuelve el primer parámetro. Si es NULL, se devuelve el segundo parámetro. Si se especifican tres parámetros, el comportamiento es el mismo que iif(isNull(value1), value2, value3) y se devuelve el tercer parámetro si el primer valor no es NULL.

  • iifNull(10, 20) -> 10
  • iifNull(null, 20, 40) -> 20
  • iifNull('azure', 'data', 'factory') -> 'factory'
  • 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 subcadena 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 intersección 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 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)

jaroWinkler

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

Obtiene la distancia de JaroWrinkler entre dos cadenas.

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

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)

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. La excepción son los siguientes símbolos especiales: _ coincide con cualquier carácter en la entrada (similar a . en expresiones regulares posix) y % coincide con cero o más caracteres en la entrada (similar a .* en expresiones regulares 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 a partir de una posición determinada. 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'
  • lpad('dumbo', 8, '<>') -> '<><dumbo'

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!'

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 con el formato "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

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

notNull

notNull(<value1> : any) => boolean

Comprueba si el valor no es NULL.

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

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

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()


.

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

radians

radians(<value1> : number) => double

Convierte los 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 junto 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 no está ordenada 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.

  • 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(<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 forma predeterminada. Si el modo se omite, se establece en ROUND_HALF_UP(5) de forma predeterminada. Los valores de redondeo incluyen 1 - ROUND_UP 2 - ROUND_DOWN 3 - ROUND_CEILING 4 - ROUND_FLOOR 5 - ROUND_HALF_UP 6 - ROUND_HALF_DOWN 7 - ROUND_HALF_EVEN 8 - ROUND_UNNECESSARY.

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

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) -> ''

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)

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) => string

Codifica la cadena especificada en Base64.

  • toBase64('bojjus') -> 'Ym9qanVz'

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, se utiliza el valor predeterminado (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

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]) => 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.

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

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!', '-!') -> 'du!mbo'

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. "number" coincide con los tipos short, entero, long, double, float o decimal; "integral" coincide con los tipos short, entero 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')

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 junto 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()

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)

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

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

year

year(<value1> : datetime) => integer

Obtiene el valor de año de una fecha.

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

Pasos siguientes

Aprenda a usar el Generador de expresiones.