Partilhar via


Uso da expressão de transformação de dados no mapeamento de fluxos de dados

APLICA-SE A: Azure Data Factory Azure Synapse Analytics

Tip

Experimente o Data Factory no Microsoft Fabric, uma solução de análise tudo-em-um para empresas. O Microsoft Fabric abrange tudo, desde a movimentação de dados até ciência de dados, análises em tempo real, business intelligence e relatórios. Saiba como iniciar uma nova avaliação gratuitamente!

Os fluxos de dados estão disponíveis nos pipelines do Azure Data Factory e no Azure Synapse Analytics. Este artigo aplica-se ao mapeamento de fluxos de dados. Se você é novo em transformações, consulte o artigo introdutório Transformar dados usando fluxos de dados de mapeamento.

Este artigo fornece detalhes sobre a utilização de todas as expressões e funções suportadas pelo Azure Data Factory e pelo Azure Synapse Analytics no mapeamento de fluxos de dados. Para resumos de cada tipo de função suportada, consulte os seguintes artigos:

Lista alfabética de todas as funções

A lista alfabética seguinte inclui todas as funções disponíveis nos fluxos de dados de mapeamento.

A

abs

abs(<value1> : number) => number

Devolve o valor absoluto de um número.

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

acos

acos(<value1> : number) => double

Calcula um valor inverso de cosseno.

  • acos(1) -> 0.0

add

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

Adiciona um par de cadeias de caracteres ou números. Adiciona uma data a muitos dias. Adiciona uma duração ao carimbo temporal. Acrescenta um array de tipo semelhante a outro. O mesmo que o + 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

Adiciona dias a uma data ou carimbo de hora. O mesmo que o operador + para datas.

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

addMonths

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

Adiciona meses a uma data ou carimbo temporal. Pode, opcionalmente, especificar um fuso horário.

  • addMonths(toDate('2016-08-31'), 1) -> toDate('2016-09-30')
  • addMonths(toTimestamp('2016-09-30 10:10:10'), -1) -> toTimestamp('2016-08-31 10:10:10')

and

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

Usa o operador lógico AND . O mesmo que &&.

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

approxDistinctCount

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

Obtém a contagem agregada aproximada de valores distintos para uma coluna. O segundo parâmetro opcional é controlar o erro de estimativa.

  • approxDistinctCount(ProductID, .05) => long

array

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

Cria uma matriz de itens. Todos os itens devem ser do mesmo tipo. Se nenhum item for especificado, uma matriz de cadeia de caracteres vazia será o padrão. O mesmo que um operador de [] criação.

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

ascii

ascii(<Input> : string) => number

Retorna o valor numérico do caractere de entrada. Se a cadeia de entrada tiver mais do que um carácter, o valor numérico do primeiro carácter é devolvido.

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

asin

asin(<value1> : number) => double

Calcula um valor seno inverso.

  • asin(0) -> 0.0

assertErrorMessages

assertErrorMessages() => map

Retorna um mapa de todas as mensagens de erro para a linha com ID de declaração como a chave.

Examples

  • assertErrorMessages() => ['assert1': 'This row failed on assert1.', 'assert2': 'This row failed on assert2.']. In this example, at(assertErrorMessages(), 'assert1') would return 'This row failed on assert1.'

associate

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

Cria um mapa de chaves/valores. Todas as chaves e valores devem ser do mesmo tipo. Se nenhum item for especificado, o padrão será um mapa de cadeia de caracteres para tipo de cadeia de caracteres. O mesmo que um operador de [ -> ] criação. Chaves e valores devem alternar entre si.

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

at

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

Localiza o elemento em um índice de matriz. O índice é baseado em 1. Um índice fora dos limites resulta num valor nulo. Encontra um valor num mapa quando é fornecida uma chave. Se a chave não for encontrada, devolve um valor nulo.

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

atan

atan(<value1> : number) => double

Calcula um valor tangente inverso.

  • atan(0) -> 0.0

atan2

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

Devolve o ângulo em radianos entre o eixo x positivo de um plano e o ponto dado pelas coordenadas.

  • atan2(0, 0) -> 0.0

avg

avg(<value1> : number) => number

Obtém a média dos valores de uma coluna.

  • avg(sales)

avgIf

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

Obtém a média dos valores de uma coluna, com base nos critérios.

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

B

between

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

Verifica se o primeiro valor está entre dois outros valores, inclusive. Podes comparar números, cadeias e datetime valores.

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

bitwiseAnd

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

Utiliza o operador bit a And bit entre os tipos de integrais. O mesmo que o & operador.

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

bitwiseOr

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

Utiliza o operador bit a Or bit entre os tipos de integrais. O mesmo que o | operador.

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

bitwiseXor

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

Utiliza o operador bit a Or bit entre os tipos de integrais. Igual ao | operador

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

blake2b

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

Calcula o resumo Blake2 de um conjunto de colunas com tipos de dados primitivos variados quando é dado um comprimento de bits, que só pode ser múltiplos de 8, variando de 8 a 512. Podes usá-lo para calcular uma impressão digital para uma linha.

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

blake2bBinary

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

Calcula o resumo Blake2 de um conjunto de colunas com tipos de dados primitivos variados quando dado um comprimento de bit, que só pode ser múltiplos de 8 entre 8 e 512. Podes usá-lo para calcular uma impressão digital para uma linha.

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

byItem

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

Encontra um subitem dentro de uma estrutura ou array de estruturas. Se houver várias correspondências, a primeira partida será retornada. Se não houver correspondências, um NULL valor é devolvido. O valor devolvido deve ser convertido por tipo por uma das ações de conversão de tipo (como ? date e ? string). Trate os nomes das colunas conhecidos na fase de design pelos seus nomes. Entradas computadas não são suportadas, mas podes usar substituições 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

Seleciona um valor de coluna por nome no fluxo. Você pode passar um nome de fluxo opcional como o segundo argumento. Se houver várias correspondências, a primeira partida será retornada. Se não houver correspondências, um NULL valor é devolvido. O valor devolvido deve ser convertido por tipo por uma das funções de conversão de tipo (como TO_DATE e TO_STRING). Trate os nomes das colunas conhecidos na fase de design pelos seus nomes. Entradas computadas não são suportadas, mas podes usar substituições 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

Selecione uma matriz de colunas por nome no fluxo. Você pode passar um nome de fluxo opcional como o segundo argumento. Se houver várias correspondências, a primeira partida será retornada. Se não houver correspondências para uma coluna, a totalidade da saída será um valor NULL. O valor devolvido requer uma função de conversão de tipo (como toDate e toString). Trate os nomes das colunas conhecidos na fase de design pelos seus nomes. Entradas computadas não são suportadas, mas podes usar substituições 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

Seleciona um valor de coluna por nome no fluxo de origem. O segundo argumento é o nome do fluxo de origem. Se houver várias correspondências, a primeira partida será retornada. Se não houver correspondências, um NULL valor é devolvido. O valor devolvido deve ser convertido por tipo por uma das funções de conversão de tipo (como TO_DATE e TO_STRING). Trate os nomes das colunas conhecidos na fase de design pelos seus nomes. Entradas computadas não são suportadas, mas podes usar substituições de parâmetros.

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

byOrigins

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

Seleciona uma matriz de colunas por nome no fluxo. O segundo argumento é o fluxo de água de onde se originou. Se houver várias correspondências, a primeira partida será retornada. Se não houver correspondências, um NULL valor é devolvido. O valor devolvido deve ser convertido por tipo por uma das funções de conversão de tipo (como TO_DATE e TO_STRING). Trate os nomes das colunas conhecidos na fase de design pelos seus nomes. Entradas computadas não são suportadas, mas podes usar substituições de parâmetros.

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

byPath

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

Localiza um caminho hierárquico pelo nome no fluxo. Você pode passar um nome de fluxo opcional como o segundo argumento. Se tal caminho não for encontrado, devolve NULL. Os nomes das colunas/caminhos conhecidos no momento do projeto devem ser abordados apenas usando o seu nome ou o caminho da notação dos pontos. Entradas computadas não são suportadas, mas podes usar substituições de parâmetros.

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

byPosition

byPosition(<position> : integer) => any

Seleciona um valor de coluna por sua posição relativa (com base em 1) no fluxo. Se a posição estiver fora dos limites, devolve um NULL valor. O valor devolvido deve ser convertido por tipo por uma das funções de conversão de tipo (como TO_DATE ou TO_STRING). Entradas computadas não são suportadas, mas podes usar substituições de parâmetros.

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

C

case

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

Com base em condições alternadas, a case função aplica um valor ou outro. Se o número de entradas for par, a outra entrada é definida como NULL por defeito para a última condição.

  • 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 a raiz do cubo de um número.

  • cbrt(8) -> 2.0

ceil

ceil(<value1> : number) => number

Devolve o menor número inteiro não inferior ao número.

  • ceil(-0.1) -> 0

char

char(<Input> : number) => string

Devolve o carácter ASCII representado pelo número de entrada. Se o número for superior a 256, o resultado é equivalente a char (número % 256).

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

coalesce

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

Retorna o primeiro valor não nulo de um conjunto de entradas. Todas as entradas devem ser do mesmo tipo.

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

collect

collect(<value1> : any) => array

Coleta todos os valores da expressão no grupo agregado em uma matriz. Pode recolher e transformar estruturas em estruturas alternadas durante este processo. O número de itens é igual ao número de linhas desse grupo e pode conter valores nulos. O número de itens recolhidos deve ser pequeno.

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

collectUnique

collectUnique(<value1> : any) => array

Coleta todos os valores da expressão no grupo agregado em uma matriz exclusiva. Pode recolher e transformar estruturas em estruturas alternadas durante este processo. O número de itens é igual ao número de linhas desse grupo e pode conter valores nulos. O número de itens recolhidos deve ser pequeno.

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

columnNames

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

Obtém os nomes de todas as colunas de saída de um fluxo. Você pode passar um nome de fluxo opcional como o primeiro argumento. O segundo argumento também é opcional, com false como padrão. Se você definir o segundo argumento como true(), o Data Factory retornará somente as colunas que são desviadas por desvio de esquema.

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

columns

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

Obtém os valores de todas as colunas de saída de um fluxo. Você pode passar um nome de fluxo opcional como o segundo argumento.

  • columns()
  • columns('DeriveStream')

compare

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

Compara dois valores do mesmo tipo. Devolve um valor inteiro negativo se valor1 < valor2, 0 se valor1 == valor2, e um valor positivo se valor1 > valor2.

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

concat

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

Concatena um número variável de cadeias de caracteres juntas. Tal como o operador + com strings.

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

concatWS

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

Concatena um número variável de cadeias de caracteres juntamente com um separador. O primeiro parâmetro é o 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

Retorna true se algum elemento do array fornecido for avaliado como true no predicado fornecido. A contains função espera uma referência a um elemento da função 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 um valor de cosseno.

  • cos(10) -> -0.8390715290764524

cosh

cosh(<value1> : number) => double

Calcula um cosseno hiperbólico de um valor.

  • cosh(0) -> 1.0

count

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

Obtém a contagem agregada de valores. Se uma ou mais colunas opcionais forem especificadas, os valores NULL são ignorados na contagem.

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

countAll

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

Obtém a contagem agregada de valores, incluindo valores nulos.

  • countAll(custId)
  • countAll()

countDistinct

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

Obtém a contagem agregada de valores distintos de um conjunto de colunas.

  • countDistinct(custId, custName)

countAllDistinct

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

Obtém a contagem agregada de valores distintos de um conjunto de colunas incluindo valores nulos.

  • countAllDistinct(custId, custName)

countIf

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

Obtém a contagem agregada de valores, com base nos critérios. Se a coluna opcional for especificada, ignora os valores NULL na contagem.

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

covariancePopulation

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

Obtém a covariância populacional entre duas colunas.

  • covariancePopulation(sales, profit)

covariancePopulationIf

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

Obtém a covariância populacional de duas colunas, com base em critérios.

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

covarianceSample

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

Obtém a covariância de amostra de duas colunas.

  • covarianceSample(sales, profit)

covarianceSampleIf

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

Obtém a covariância amostral de duas colunas, com base em critérios.

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

crc32

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

Calcula o hash CRC32 de um conjunto de colunas de diferentes tipos primitivos de dados quando dado um comprimento de bit, que só pode ter valores 0(256), 224, 256, 384, e 512. Podes usá-lo para calcular uma impressão digital para uma linha.

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

cumeDist

cumeDist() => integer

A cumeDist função calcula a posição de um valor em relação a todos os valores na partição. O resultado é o número de linhas anteriores ou iguais à linha atual na ordenação da partição dividido pelo número total de linhas na partição da janela. Quaisquer valores de empate na ordem avaliam para a mesma posição.

  • cumeDist()

currentDate

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

Obtém a data atual em que esse trabalho começa a ser executado. Pode passar por um fuso horário opcional na forma de GMT, PST, UTC, ou America/Cayman. O fuso horário local do centro/região de dados da data factory é usado como padrão. Consulte a classe SimpleDateFormat do Java para os formatos disponíveis.

  • 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

Obtém a marca temporal atual quando o trabalho começa a executar no fuso horário local.

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

currentUTC

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

Recebe o carimbo temporal atual como UTC. Se quiser que a sua hora atual seja interpretada num fuso horário diferente do seu cluster, pode passar por um fuso horário opcional na forma de GMT, PST, UTC, ou America/Cayman. Define-se por defeito para o fuso horário atual. Consulte a classe SimpleDateFormat do Java para os formatos disponíveis. Para converter a hora UTC para um fuso horário diferente, use fromUTC().

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

D

dayOfMonth

dayOfMonth(<value1> : datetime) => integer

Obtém o dia do mês a partir de uma data fornecida.

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

dayOfWeek

dayOfWeek(<value1> : datetime) => integer

Recebe o dia da semana quando lhe é atribuída uma data. Por exemplo, 1 é domingo, 2 é segunda-feira, ... e 7 é sábado.

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

dayOfYear

dayOfYear(<value1> : datetime) => integer

Obtém o dia do ano para uma data dada.

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

days

days(<value1> : integer) => long

Duração em milissegundos para o número de dias.

  • days(2) -> 172800000L

decode

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

Decodifica os dados de entrada codificados em uma cadeia de caracteres com base no conjunto de caracteres fornecido. Podes usar um segundo argumento (opcional) para especificar qual o conjunto de caracteres a usar. Exemplos são US-ASCII, ISO-8859-1, UTF-8 (por defeito), UTF-16BE, UTF-16LE, e UTF-16.

  • decode(array(toByte(97),toByte(98),toByte(99)), 'US-ASCII') -> abc

degrees

degrees(<value1> : number) => double

Converte radianos em graus.

  • degrees(3.141592653589793) -> 180

denseRank

denseRank() => integer

Calcula a classificação de um valor em um grupo de valores especificados na ordem de uma janela por cláusula. O resultado é um mais o número de linhas anteriores ou iguais à linha atual na ordem da partição. Os valores não produzem lacunas na sequência. A denseRank função funciona mesmo quando os dados não estão organizados e procura alterações nos valores.

  • denseRank()

distinct

distinct(<value1> : array) => array

Retorna um conjunto distinto de itens de uma matriz.

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

divide

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

Divide o par de números. O mesmo que o / operador.

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

dropLeft

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

Remove tantos caracteres da esquerda da cadeia de caracteres. Se a queda solicitada exceder o comprimento da cadeia de caracteres, uma cadeia de caracteres vazia será retornada.

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

dropRight

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

Remove tantos caracteres da direita da cadeia de caracteres. Se a queda solicitada exceder o comprimento da cadeia de caracteres, uma cadeia de caracteres vazia será retornada.

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

E

encode

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

Codifica os dados da cadeia de caracteres de entrada em binários com base em um charset. Um segundo argumento (opcional) pode ser usado para especificar qual o conjunto de caracteres a usar. Exemplos são US-ASCII, ISO-8859-1, UTF-8 (por defeito), UTF-16BE, UTF-16LE, e UTF-16.

  • encode('abc', 'US-ASCII') -> array(toByte(97),toByte(98),toByte(99))

endsWith

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

Verifica se a cadeia de caracteres termina com a cadeia de caracteres fornecida.

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

equals

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

Usa o operador de comparação igual a . O mesmo que o == operador.

  • equals(12, 24) -> false
  • 12 == 24 -> false
  • 'bad' == 'bad' -> true
  • isNull('good' == toString(null)) -> true
  • isNull(null == null) -> true

equalsIgnoreCase

equalsIgnoreCase(<value1> : string, <value2> : string) => boolean

Usa a comparação igual ao operador que ignora o caso. O mesmo que o <=> operador.

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

escape

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

Escapa de uma cadeia de caracteres de acordo com um formato. Valores literais para formato aceitável são json, xml, ecmascript, html, e java.


except

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

Retorna um conjunto de diferenças de uma matriz de outra descartando duplicatas.

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

expr

expr(<expr> : string) => any

Resulta numa expressão a partir de uma cadeia, que é o mesmo que escrever esta expressão numa forma não literal. Podes usá-lo para passar parâmetros como representações de cadeias.

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

F

factorial

factorial(<value1> : number) => long

Calcula o fatorial de um número.

  • factorial(5) -> 120

false

false() => boolean

Sempre retorna um valor falso. Use a função syntax(false()) se uma coluna for nomeada false.

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

filter

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

Filtra elementos fora da matriz que não atendem ao predicado fornecido. O filtro espera uma referência a um elemento da função 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

Encontre o primeiro item de uma matriz que corresponda à condição. Utiliza uma função de filtro onde podes endereçar o item no array como #item. Para mapas profundamente aninhados, pode referir-se aos mapas pais usando a notação #item_n (#item_1, #item_2...).

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

first

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

Obtém o primeiro valor de um grupo de colunas. Se o segundo parâmetro ignoreNulls for omitido, o Data Factory considera como falso.

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

flatten

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

Achata o(s) array(s) num único array. Matrizes de itens atômicos são retornadas inalteradas. O último argumento é opcional e o padrão é false para achatar recursivamente mais de um nível de profundidade.

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

floor

floor(<value1> : number) => number

Devolve o número inteiro maior não superior ao número.

  • floor(-0.1) -> -1

fromBase64

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

Decodifica a cadeia específica codificada em base64. Opcionalmente, você pode passar o tipo de codificação.

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

fromUTC

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

Converte para o carimbo temporal do UTC. Pode, opcionalmente, passar o fuso horário na forma de GMT, PST, UTC, ou America/Cayman. Define-se por defeito para o fuso horário atual. Consulte a classe SimpleDateFormat do Java para os formatos disponíveis.

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

G

greater

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

Utiliza o operador de comparação maior. O mesmo que > operador.

  • greater(12, 24) -> false
  • ('dumbo' > 'dum') -> true
  • (toTimestamp('2019-02-05 08:21:34.890', 'yyyy-MM-dd HH:mm:ss.SSS') > toTimestamp('2019-02-03 05:19:28.871', 'yyyy-MM-dd HH:mm:ss.SSS')) -> true

greaterOrEqual

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

Usa a comparação maior ou igual a operador. O mesmo que >= operador.

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

greatest

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

Devolve o maior valor entre a lista de valores como entrada, saltando valores nulos. Retorna null se todas as entradas forem nulas.

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

H

hasColumn

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

Verifica se há um valor de coluna por nome no fluxo. Você pode passar um nome de fluxo opcional como o segundo argumento. Trate os nomes das colunas conhecidos na fase de design pelos seus nomes. Entradas computadas não são suportadas, mas podes usar substituições de parâmetros.

  • hasColumn('parent')

hasError

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

Verifica se o ativo com um ID fornecido está marcado como erro.

Examples

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

hasPath

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

Verifica se um determinado caminho hierárquico existe por nome no fluxo. Você pode passar um nome de fluxo opcional como o segundo argumento. Os nomes das colunas/caminhos conhecidos no momento do projeto devem ser abordados apenas usando o seu nome ou o caminho da notação dos pontos. Entradas computadas não são suportadas, mas podes usar substituições de parâmetros.

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

hex

hex(<value1>: binary) => string

Retorna uma representação de cadeia de caracteres hexadecimal de um valor binário

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

hour

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

Obtém o valor da hora de um carimbo de hora. Pode passar por um fuso horário opcional na forma de GMT, PST, UTC, ou America/Cayman. O fuso horário local é usado como padrão. Consulte a classe SimpleDateFormat do Java para os formatos disponíveis.

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

hours

hours(<value1> : integer) => long

Obtém a duração em milissegundos para o número de horas.

  • hours(2) -> 7200000L

I

iif

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

Aplica um valor ou outro com base numa condição. Se o outro não for especificado, o valor é considerado NULL. Ambos os valores devem ser compatíveis (como numérico e string).

  • iif(10 + 20 == 30, 'dumbo', 'gumbo') -> 'dumbo'
  • iif(10 > 30, 'dumbo', 'gumbo') -> 'gumbo'
  • iif(month(toDate('2018-12-01')) == 12, 345.12, 102.67) -> 345.12

iifNull

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

Devolve o primeiro item não nulo quando recebe dois ou mais inputs. Esta função é equivalente à coalesce função.

  • iifNull(10, 20) -> 10
  • iifNull(null, 20, 40) -> 20
  • iifNull('azure', 'data', 'factory') -> 'azure'
  • iifNull(null, 'data', 'factory') -> 'data'

in

in(<array of items> : array, <item to find> : any) => boolean

Verifica se um item está na matriz.

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

initCap

initCap(<value1> : string) => string

Converte a primeira letra de cada palavra em maiúsculas. As palavras são identificadas como separadas por espaço em branco.

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

instr

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

Localiza a posição (com base em 1) da substring dentro de uma cadeia de caracteres. Se não for encontrado, 0 é devolvido.

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

intersect

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

Retorna um conjunto de interseções de itens distintos de duas matrizes.

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

isBitSet

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

Verifica se uma posição de bits está definida neste conjunto de bits.

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

isBoolean

isBoolean(<value1>: string) => boolean

Verifica se o valor da cadeia é um valor booleano de acordo com as regras de toBoolean().

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

isByte

isByte(<value1> : string) => boolean

Verifica se o valor da cadeia é um valor de byte quando dado um formato opcional de acordo com as regras de toByte().

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

isDate

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

Verifica se a cadeia de data de entrada é uma data usando um formato opcional de data de entrada. Consulte a classe SimpleDateFormat do Java para os formatos disponíveis. Se o formato de data de entrada for omitido, o formato predefinido é yyyy-[M]M-[d]d. Os formatos aceites são :[ 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

Verifica se o valor da cadeia é um valor decimal quando dado um formato opcional de acordo com as regras de toDecimal().

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

isDelete

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

Verifica se a linha deve ser eliminada. Para transformações que requerem mais do que um fluxo de entrada, pode passar o índice (baseado em 1) do fluxo. O índice do fluxo deve ser ou 1 ou 2, e o valor padrão é 1.

  • isDelete()
  • isDelete(1)

isDistinct

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

Localiza se uma coluna ou conjunto de colunas é distinto. Não conta nulo como um valor distinto.

  • isDistinct(custId, custName) => boolean

isDouble

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

Verifica se o valor da cadeia é um valor duplo quando dado um formato opcional de acordo com as regras de toDouble().

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

isError

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

Verifica se a linha está marcada como um erro. Para transformações que requerem mais do que um fluxo de entrada, pode passar o índice (baseado em 1) do fluxo. O índice do fluxo deve ser ou 1 ou 2 e o valor padrão é 1.

  • isError()
  • isError(1)

isFloat

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

Verifica se o valor da cadeia é um valor flutuante quando dado um formato opcional de acordo com as regras de toFloat().

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

isIgnore

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

Verifica se a linha deve ser ignorada. Para transformações que tomam mais do que um fluxo de entrada, pode passar o índice (baseado em 1) do fluxo. O índice do fluxo deve ser ou 1 ou 2, e o valor padrão é 1.

  • isIgnore()
  • isIgnore(1)

isInsert

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

Verifica se a linha está marcada para inserção. Para transformações que usam mais de um fluxo de entrada, é possível fornecer o índice do fluxo, que começa em 1. O índice do fluxo deve ser ou 1 ou 2, e o valor padrão é 1.

  • isInsert()
  • isInsert(1)

isInteger

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

Verifica se o valor da cadeia é um valor inteiro quando dado um formato opcional de acordo com as regras de toInteger().

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

isLong

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

Verifica se o valor da cadeia é um valor longo quando dado um formato opcional de acordo com as regras de toLong().

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

isMatch

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

Verifica se a linha corresponde na pesquisa. Para transformações que tomam mais do que um fluxo de entrada, pode passar o índice (baseado em 1) do fluxo. O índice do fluxo deve ser ou 1 ou 2, e o valor padrão é 1.

  • isMatch()
  • isMatch(1)

isNan

isNan (<value1> : integral) => boolean

Verifica se o valor não é um número.

  • isNan(10.2) => false

isNull

isNull(<value1> : any) => boolean

Verifica se o valor é NULL.

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

isShort

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

Verifica se o valor da cadeia é um valor curto quando dado um formato opcional segundo as regras de toShort().

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

isTimestamp

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

Verifica se a cadeia de data de entrada é um carimbo temporal usando um formato opcional de carimbo temporal de entrada. Consulte a classe SimpleDateFormat do Java para os formatos disponíveis. Se o carimbo temporal for omitido, é usado o padrão yyyy-[M]M-[d]d hh:mm:ss[.f...] padrão. Pode passar por um fuso horário opcional na forma de GMT, PST, UTC, ou America/Cayman. A timestamp função suporta precisão até milissegundos com um valor de 999. Consulte a classe SimpleDateFormat do Java para os formatos disponíveis.

  • 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

Verifica se a linha está marcada para atualização. Para transformações que tomam mais do que um fluxo de entrada, pode passar o índice (baseado em 1) do fluxo. O índice do fluxo deve ser ou 1 ou 2, e o valor padrão é 1.

  • isUpdate()
  • isUpdate(1)

isUpsert

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

Verifica se a linha está marcada para inserção. Para transformações que tomam mais do que um fluxo de entrada, pode passar o índice (baseado em 1) do fluxo. O índice do fluxo deve ser ou 1 ou 2, e o valor padrão é 1.

  • isUpsert()
  • isUpsert(1)

J

jaroWinkler

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

Obtém a distância JaroWinkler entre duas cadeias de caracteres.

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

K

keyValues

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

Cria um mapa de chaves/valores. O primeiro parâmetro é um array de chaves, e o segundo é o array de valores. Ambas as matrizes devem ter o mesmo comprimento.

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

kurtosis

kurtosis(<value1> : number) => double

Obtém a curtose de uma coluna.

  • kurtosis(sales)

kurtosisIf

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

Obtém a curtose de uma coluna com base em determinados critérios.

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

L

lag

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

Obtém o valor do primeiro parâmetro avaliado n linhas antes da linha atual. O segundo parâmetro é o número de linhas a consultar para trás, e o valor padrão é 1. Se não houver tantas linhas, é devolvido um valor nulo, a menos que seja especificado um valor padrão.

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

last

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

Obtém o último valor de um grupo de colunas. Se o segundo parâmetro ignoreNulls for omitido, assume-se que é falso.

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

lastDayOfMonth

lastDayOfMonth(<value1> : datetime) => date

Recebe a última data do mês quando é dada uma data.

  • lastDayOfMonth(toDate('2009-01-12')) -> toDate('2009-01-31')

lead

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

Obtém o valor do primeiro parâmetro avaliado n nas linhas após a linha atual. O segundo parâmetro é o número de linhas a avançar, e o valor padrão é 1. Se não houver tantas linhas, é devolvido um valor nulo, a menos que seja especificado um valor padrão.

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

least

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

Usa o operador de comparação menor ou igual a. O mesmo que o <= 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

Extrai uma subcadeia que começa no índice 1 com o número de caracteres. O mesmo que SUBSTRING(str, 1, n).

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

length

length(<value1> : string) => integer

Devolve o comprimento da cadeia.

  • length('dumbo') -> 5

lesser

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

Usa o operador de menor comparação. O mesmo que o < operador.

  • lesser(12, 24) -> true
  • ('abcd' < 'abc') -> false
  • (toTimestamp('2019-02-03 05:19:28.871', 'yyyy-MM-dd HH:mm:ss.SSS') < toTimestamp('2019-02-05 08:21:34.890', 'yyyy-MM-dd HH:mm:ss.SSS')) -> true

lesserOrEqual

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

Usa o operador de comparação menor ou igual a. O mesmo que o <= operador.

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

levenshtein

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

Obtém a distância levenshtein entre duas cordas.

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

like

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

Usa um padrão de sequência de caracteres que é correspondido literalmente. As exceções são os seguintes símbolos especiais: _ corresponde a qualquer carácter na entrada (semelhante às .*posix expressões regulares). % corresponde a zero ou mais caracteres da entrada (semelhante a .* em expressões regulares). O caractere de fuga é ''. Se um caractere de escape preceder um símbolo especial ou outro caractere de escape, o caractere a seguir será correspondido literalmente. É inválido escapar de qualquer outro personagem.

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

locate

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

Encontra a posição (baseada em 1) da subcorda dentro de uma sequência que começa numa certa posição. Se a posição for omitida, começa no início da cadeia de caracteres. Se não for encontrado, 0 é devolvido.

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

log

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

Calcula o valor logarítmico. Pode fornecer uma base opcional ou, se usado, um número de Euler.

  • log(100, 10) -> 2

log10

log10(<value1> : number) => double

Calcula o valor logarítmico com base em 10 bases.

  • log10(100) -> 2

lookup

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

Procura a primeira linha do sumidouro em cache usando as chaves especificadas que correspondem às chaves do sumidouro em cache.

  • cacheSink#lookup(movieId)

lower

lower(<value1> : string) => string

Uma cadeia de caracteres em minúsculas.

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

lpad

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

Preenche a string à esquerda com o enchimento fornecido até que a string atinja um determinado comprimento. Se a cadeia de caracteres for igual ou maior que o comprimento, a cadeia de caracteres é aparada ao comprimento.

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

ltrim

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

A esquerda corta uma sequência de caracteres principais. Se o segundo parâmetro não for especificado, reduz o espaço em branco. Caso contrário, corta qualquer carácter especificado no segundo parâmetro.

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

M

map

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

Mapeia cada elemento do array para um novo elemento usando a expressão fornecida. A map função espera uma referência a um elemento da função de expressão 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 um mapa associando as chaves a novos valores. Retorna uma matriz. É necessária uma função de mapeamento onde podes endereçar o item como #key e o valor atual 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

Condicionalmente mapeia um array para outro array do mesmo comprimento ou menor. Os valores podem ser de qualquer tipo de dado, incluindo structTypes. Utiliza uma função de mapeamento onde podes endereçar o item no array como #item e o índice atual como #index. Para mapas profundamente aninhados, pode referir-se aos mapas pais usando a notação ``#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

Mapeia cada elemento do array para um novo elemento usando a expressão fornecida. A map função espera uma referência a um elemento na função de expressão como #item e uma referência ao índice do elemento como #index.

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

mapLoop

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

Itera de 1 até à extensão para criar um array com esse comprimento. Utiliza uma função de mapeamento onde se pode endereçar o índice no array como #index. Para mapas profundamente aninhados, pode referir-se aos mapas pais usando a notação #index_n (#index_1, #index_2).

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

max

max(<value1> : any) => any

Obtém o valor máximo de uma coluna.

  • max(sales)

maxIf

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

Obtém o valor máximo de uma coluna, com base nos critérios.

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

md5

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

Calcula o resumo MD5 de um conjunto de colunas com diferentes tipos de dados primitivos e devolve uma cadeia hexadecimal de 32 caracteres. Podes usá-lo para calcular uma impressão digital para uma linha.

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

mean

mean(<value1> : number) => number

Obtém a média dos valores de uma coluna. O mesmo que AVG.

  • mean(sales)

meanIf

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

Obtém a média dos valores de uma coluna, com base em critérios. O mesmo que avgIf.

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

millisecond

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

Obtém o valor de milissegundos de uma data. Pode passar por um fuso horário opcional na forma de GMT, PST, UTC, ou America/Cayman. O fuso horário local é usado como padrão. Consulte a classe SimpleDateFormat do Java para os formatos disponíveis.

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

milliseconds

milliseconds(<value1> : integer) => long

Obtém a duração em milissegundos a partir do número de milissegundos.

  • milliseconds(2) -> 2L

min

min(<value1> : any) => any

Obtém o valor mínimo de uma coluna.

  • min(sales)

minIf

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

Obtém o valor mínimo de uma coluna, com base nos critérios.

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

minus

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

Subtrai números. Subtrai o número de dias de uma data. Subtrai a duração de uma marca temporal. Subtrai dois carimbos temporais para obter a diferença em milissegundos. O mesmo que o - 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

Obtém o valor do minuto de uma marca temporal. Pode passar por um fuso horário opcional na forma de GMT, PST, UTC, ou America/Cayman. O fuso horário local é usado como padrão. Consulte a classe SimpleDateFormat do Java para os formatos disponíveis.

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

minutes

minutes(<value1> : integer) => long

Obtém a duração em milissegundos para o número de minutos.

  • minutes(2) -> 120000L

mlookup

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

Procura todas as linhas correspondentes a partir do coletor em cache usando as chaves especificadas que coincidem com as chaves do coletor em cache.

  • cacheSink#mlookup(movieId)

mod

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

Obtém o módulo de um par de números. O mesmo que o % operador.

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

month

month(<value1> : datetime) => integer

Obtém o valor do mês de uma data ou carimbo de data e hora.

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

monthsBetween

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

Obtém o número de meses entre duas datas. Você pode completar o cálculo. Pode passar por um fuso horário opcional na forma de GMT, PST, UTC, ou America/Cayman. O fuso horário local é usado como padrão. Consulte a classe SimpleDateFormat do Java para os formatos disponíveis.

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

multiply

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

Multiplica um par de números. O mesmo que o * operador.

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

N

negate

negate(<value1> : number) => number

Nega um número. Transforma números positivos em negativos e vice-versa.

  • negate(13) -> -13

nextSequence

nextSequence() => long

Retorna a próxima sequência exclusiva. O número é consecutivo apenas dentro de uma partição e é prefixado pelo ID da partição.

  • nextSequence() == 12313112 -> false

normalize

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

Normaliza o valor da cadeia para caracteres Unicode acentuados separados.

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

not

not(<value1> : boolean) => boolean

Utiliza o operador de negação lógica.

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

notEquals

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

Usa o operador de comparação não é igual a . O mesmo que o != operador.

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

nTile

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

A função nTile divide as linhas de cada partição de janela em n intervalos que variam de 1 até, no máximo, n. Os valores dos baldes diferem, no máximo em 1. Se o número de linhas na partição não se dividir uniformemente no número de buckets, os valores restantes serão distribuídos um por bucket, começando com o primeiro bucket. A nTile função é útil para o cálculo de tertilesquartis, decis e outras estatísticas resumidas comuns. A função calcula duas variáveis durante a inicialização. O tamanho de um balde normal inclui uma fila adicional. Ambas as variáveis são baseadas no tamanho da partição atual. Durante o processo de cálculo, a função acompanha o número da linha atual, o número do compartimento atual e o número da linha em que o compartimento muda (bucketThreshold). Quando o número da linha atual atinge o limiar do segmento, o valor do segmento aumenta em uma unidade. O limiar aumenta com o tamanho do balde (mais um extra se o balde atual estiver acolchoado).

  • nTile()
  • nTile(numOfBuckets)

null

null() => null

Devolve um NULL valor. Use a função syntax(null()) se uma coluna for nomeada null. Qualquer operação que use nulo resulta num NULL valor.

  • isNull('dumbo' + `null`) -> true
  • isNull(10 * `null`) -> true
  • isNull('') -> false
  • isNull(10 + 20) -> false
  • isNull(10/0) -> true

O

or

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

Usa o operador lógico OR . O mesmo que ||.

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

originColumns

originColumns(<streamName> : string) => any

Obtém todas as colunas de saída para um fluxo de origem onde as colunas foram criadas. Deve ser incluído em outra função.

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

output

output() => any

Devolve a primeira linha dos resultados do sink de cache.

  • cacheSink#output()

outputs

output() => any

Devolve todo o conjunto de linhas de saída dos resultados do dissipador de cache.

  • cacheSink#outputs()

P

partitionId

partitionId() => integer

Devolve o ID de partição atual em que se encontra a linha de entrada.

  • partitionId()

pMod

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

Dá o módulo positivo de um par de números.

  • pmod(-20, 8) -> 4

power

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

Eleva um número ao poder de outro.

  • power(10, 2) -> 100

R

radians

radians(<value1> : number) => double

Converte graus em radianos.

  • radians(180) => 3.141592653589793

random

random(<value1> : integral) => double

Devolve um número aleatório quando recebe uma semente dentro de uma partição. A semente deve ser um valor fixo e é usada com o ID da partição para produzir valores aleatórios num intervalo (0.0-1.0).

  • random(1) == 1 -> false

rank

rank() => integer

Calcula a classificação de um valor em um grupo de valores especificados na ordem de uma janela por cláusula. O resultado é um mais o número de linhas anteriores ou iguais à linha atual na ordem da partição. Os valores produzem lacunas na sequência. A rank função funciona mesmo quando os dados não estão organizados e procura alterações nos valores.

  • rank()

reassociate

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

Transforma um mapa associando as chaves a novos valores. É necessária uma função de mapeamento onde podes endereçar o item como #key e o valor atual 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 elementos em uma matriz. A reduce função espera uma referência a um acumulador e um elemento na primeira função de expressão como #acc e #item. Espera-se que o valor resultante como #result seja usado na segunda função de expressão.

  • 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

Extrai uma substring correspondente para um dado padrão regex. O último parâmetro identifica o grupo de correspondência e será 1 por predefinição se omitido. Use <regex> para combinar uma string sem escape. O índice 0 retorna todos os resultados. Sem grupos de correspondência, índice 1 e acima não devolvem qualquer resultado.

  • regexExtract('Cost is between 600 and 800 dollars', '(\\d+) and (\\d+)', 2) -> '800'
  • regexExtract('Cost is between 600 and 800 dollars', `(\d+) and (\d+)`, 2) -> '800'

regexMatch

regexMatch(<string> : string, <regex to match> : string) => boolean

Verifica se a cadeia de caracteres corresponde ao padrão regex fornecido. Usa <regex> para combinar uma cadeia de caracteres sem utilizar 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

Substitui todas as ocorrências de um padrão regex por outra substring numa string específica. Usa <regex> para corresponder a uma cadeia de caracteres sem usar 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 uma cadeia de caracteres com base em um delimitador baseado em regex e retorna uma matriz de cadeias de caracteres.

  • 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

Substitui todas as ocorrências de uma subcadeia por outra subcadeia na cadeia específica. Se o último parâmetro for omitido, por defeito passa para uma cadeia vazia.

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

reverse

reverse(<value1> : string) => string

Inverte uma cadeia de caracteres.

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

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

Extrai uma subsequência com um número de caracteres a partir da direita. O mesmo que SUBSTRING(str, LENGTH(str) - n, n).

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

rlike

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

Verifica se a cadeia de caracteres corresponde ao padrão regex fornecido.

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

round

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

Arredonda um número quando recebe uma escala opcional e um modo de arredondamento opcional. Se a escala for omitida, por predefinição passa a 0. Se o modo for omitido, o padrão é ROUND_HALF_UP(5). Os valores para arredondamento incluem:

  1. ROUND_UP: Modo de arredondamento para arredondar a partir de zero.

  2. ROUND_DOWN: Modo de arredondamento para arredondar em direção a zero.

  3. ROUND_CEILING: Modo de arredondamento para arredondar para cima, em direção ao infinito positivo. (O mesmo que ROUND_UP se a entrada for positiva. Se for negativo, comporta-se como ROUND_DOWN. Por exemplo, -1,1 seria -1,0 com ROUND_CEILING e -2 com ROUND_UP.)

  4. ROUND_FLOOR: Modo de arredondamento para arredondar em direção ao infinito negativo. (O mesmo que ROUND_DOWN se a entrada for positiva. Se for negativo, comporta-se como ROUND_UP.)

  5. ROUND_HALF_UP: Modo de arredondamento para arredondar em direção ao "vizinho mais próximo", a menos que ambos os vizinhos estejam equidistantes, caso em que se comporta como ROUND_UP. (Mais comum + padrão para Dataflow.)

  6. ROUND_HALF_DOWN: Modo de arredondamento para arredondar em direção ao "vizinho mais próximo", a menos que ambos os vizinhos estejam equidistantes, caso eles ROUND_DOWN.

  7. ROUND_HALF_EVEN: Modo de arredondamento para arredondar em direção ao "vizinho mais próximo", a menos que ambos os vizinhos sejam equidistantes, caso em que arredonda em direção ao vizinho par.

  8. ROUND_UNNECESSARY: Modo de arredondamento para afirmar que a operação de arredondamento tem um resultado exato, pelo que não é necessário arredondar.

    • round(100.123) -> 100.0
    • round(2.5, 0) -> 3.0
    • round(5.3999999999999995, 2, 7) -> 5.40

rowNumber

rowNumber() => integer

Atribui uma numeração de linha sequencial para linhas em uma janela que começa com 1.

  • rowNumber()

rpad

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

A string é preenchida à direita pelo preenchimento fornecido até atingir um certo comprimento. Se a cadeia de caracteres for igual ou maior que o comprimento, a cadeia de caracteres é aparada ao comprimento.

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

rtrim

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

A direita corta uma sequência de caracteres à direita. Se o segundo parâmetro não for especificado, reduz o espaço em branco. Caso contrário, corta qualquer carácter especificado no segundo parâmetro.

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

S

second

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

Obtém o segundo valor de uma data. Pode passar por um fuso horário opcional na forma de GMT, PST, UTC, ou America/Cayman. O fuso horário local é usado como padrão. Consulte a classe SimpleDateFormat do Java para os formatos disponíveis.

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

seconds

seconds(<value1> : integer) => long

Dá a duração em milissegundos para o número de segundos.

  • seconds(2) -> 2000L

setBitSet

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

Define as posições dos bits neste conjunto de bits.

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

sha1

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

Calcula o resumo SHA-1 de um conjunto de colunas com diferentes tipos de dados primitivos e devolve uma cadeia hexadecimal de 40 caracteres. Podes usá-lo para calcular uma impressão digital para uma linha.

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

sha2

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

Calcula o resumo SHA-2 de um conjunto de colunas com tipos de dados primitivos variados quando dado um comprimento de bit, que só pode ter valores 0(256), 224, 256, 384, e 512. Podes usá-lo para calcular uma impressão digital para uma linha.

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

sin

sin(<value1> : number) => double

Calcula um valor senoidal .

  • sin(2) -> 0.9092974268256817

sinh

sinh(<value1> : number) => double

Calcula um valor sinusoidal hiperbólico.

  • sinh(0) -> 0.0

size

size(<value1> : any) => integer

Encontra o tamanho de um array ou tipo de mapa.

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

skewness

skewness(<value1> : number) => double

Obtém a assimetria de uma coluna.

  • skewness(sales)

skewnessIf

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

Obtém a inclinação de uma coluna, com base nos critérios.

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

slice

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

Extrai um subconjunto de uma matriz de uma posição. A posição é baseada em 1. Se o comprimento for omitido, por padrão considera-se até ao final da string.

  • 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 o array usando a função de predicado fornecida. A sort função espera uma referência a dois elementos consecutivos na expressão da função como #item1 e #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

Obtém o soundex código para a cadeia de caracteres.

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

split

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

Divide uma cadeia de caracteres com base em um delimitador e retorna uma matriz de cadeias de caracteres.

  • 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 a raiz quadrada de um número.

  • sqrt(9) -> 3

startsWith

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

Verifica se a cadeia de caracteres começa com a cadeia de caracteres fornecida.

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

stddev

stddev(<value1> : number) => double

Obtém o desvio padrão de uma coluna.

  • stdDev(sales)

stddevIf

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

Obtém o desvio padrão de uma coluna, com base nos critérios.

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

stddevPopulation

stddevPopulation(<value1> : number) => double

Obtém o desvio padrão da população de uma coluna.

  • stddevPopulation(sales)

stddevPopulationIf

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

Obtém o desvio padrão populacional de uma coluna, com base nos critérios.

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

stddevSample

stddevSample(<value1> : number) => double

Obtém o desvio padrão de amostra de uma coluna.

  • stddevSample(sales)

stddevSampleIf

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

Obtém o desvio padrão de exemplo de uma coluna, com base em critérios.

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

subDays

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

Subtrai dias a uma data ou carimbo temporal. O mesmo que o operador - para data.

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

subMonths

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

Subtrai meses a uma data ou carimbo temporal.

  • 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

Extrai uma substring de um determinado comprimento de uma posição. A posição é baseada em 1. Se o comprimento for omitido, por padrão considera-se até ao final da string.

  • substring('Cat in the hat', 5, 2) -> 'in'
  • substring('Cat in the hat', 5, 100) -> 'in the hat'
  • substring('Cat in the hat', 5) -> 'in the hat'
  • substring('Cat in the hat', 100, 100) -> ''

substringIndex

substringIndex( <string para subconjunto><delimitador>substringIndex( : string, : string, <contagem de ocorrências do delimitador> : inteiro]) = string>

Extrai a subcadeia antes de contar ocorrências do delimitador. Se a contagem for positiva, tudo o que está à esquerda do delimitador final (contando a partir da esquerda) é devolvido. Se a contagem for negativa, tudo o que está à direita do delimitador final (contando a partir da direita) é devolvido.

  • substringIndex('111-222-333', '-', 1) -> '111'
  • substringIndex('111-222-333', '-', 2) -> '111-222'
  • substringIndex('111-222-333', '-', -1) -> '333'
  • substringIndex('111-222-333', '-', -2) -> '222-333'

sum

sum(<value1> : number) => number

Obtém a soma agregada de uma coluna numérica.

  • sum(col)

sumDistinct

sumDistinct(<value1> : number) => number

Obtém a soma agregada de valores distintos de uma coluna numérica.

  • sumDistinct(col)

sumDistinctIf

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

Obtém a soma agregada de uma coluna numérica, com base nos critérios. A condição pode ser baseada em qualquer coluna.

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

sumIf

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

Obtém a soma agregada de uma coluna numérica, com base nos critérios. A condição pode ser baseada em qualquer coluna.

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

T

tan

tan(<value1> : number) => double

Calcula um valor tangente.

  • tan(0) -> 0.0

tanh

tanh(<value1> : number) => double

Calcula um valor tangente hiperbólico.

  • tanh(0) -> 0.0

toBase64

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

Codifica a cadeia específica em base64. Opcionalmente, você pode passar o tipo de codificação.

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

toBinary

toBinary(<value1> : any) => binary

Converte qualquer número, data, carimbo de hora ou cadeia em representação binária.

  • toBinary(3) -> [0x11]

toBoolean

toBoolean(<value1> : string) => boolean

Converte um valor de (t, true, y, yes, 1) em verdadeiro, e (f, false, n, no, 0) em false, e NULL para qualquer outro valor.

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

toByte

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

Converte qualquer número ou cadeia de caracteres em um valor de byte. Pode usar um formato decimal Java opcional para a conversão.

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

toDate

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

Converte uma cadeia de caracteres de data de entrada em uma data, utilizando um formato de data de entrada opcional. Consulte a classe SimpleDateFormat do Java para os formatos disponíveis. Se o formato de data de entrada for omitido, o formato predefinido é yyyy-[M]M-[d]d. Os formatos aceites são :[ yyyy, yyyy-[M]M, yyyy-[M]M-[d]d, yyyy-[M]M-[d]dT* ].

  • toDate('2012-8-18') -> toDate('2012-08-18')
  • toDate('12/18/2012', 'MM/dd/yyyy') -> toDate('2012-12-18')

toDecimal

toDecimal(<value> : any, [<precision> : integral], [<scale> : integral], [<format> : string], [<locale> : string]) => decimal(10,0)

Converte qualquer número ou cadeia de caracteres em um valor decimal. Caso a precisão e a escala não sejam especificadas, o valor padrão será (10,2). Pode usar um formato decimal Java opcional para a conversão. Use um formato local opcional na forma de uma linguagem BCP47 como en-US, de ou 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

Converte qualquer número ou cadeia de caracteres em um valor duplo. Pode usar um formato decimal Java opcional para a conversão. Use um formato local opcional na forma de uma linguagem BCP47 como en-US, de ou 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

Converte qualquer valor numérico ou string em um valor float. Pode usar um formato decimal Java opcional para a conversão. Trunca qualquer duplo.

  • 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

Converte qualquer número ou cadeia de caracteres em um valor inteiro. Pode usar um formato decimal Java opcional para a conversão. Trunca qualquer longo, flutuante, duplo.

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

toLong

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

Converte qualquer número ou cadeia de caracteres em um valor longo. Pode usar um formato decimal Java opcional para a conversão. Trunca qualquer flutuador, duplo.

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

topN

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

Obtém os valores superiores N desta coluna com base no argumento de contagem.

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

toShort

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

Converte qualquer número ou cadeia de caracteres em um valor curto. Pode usar um formato decimal Java opcional para a conversão. Trunca qualquer inteiro, longo, flutuante, duplo.

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

toString

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

Converte um tipo de dado primitivo numa cadeia. Pode especificar um formato para os números e a data. Se não especificado, o padrão do sistema é escolhido. O formato decimal Java é usado para números. Consulte a classe SimpleDateFormat do Java para os formatos disponíveis. O formato padrão é yyyy-MM-dd. Para uma data ou carimbo de hora, pode opcionalmente especificar um local.

  • toString(10) -> '10'
  • toString('engineer') -> 'engineer'
  • toString(123456.789, '##,###.##') -> '123,456.79'
  • toString(123.78, '000000.000') -> '000123.780'
  • toString(12345, '##0.#####E0') -> '12.345E3'
  • toString(toDate('2018-12-31')) -> '2018-12-31'
  • isNull(toString(toDate('2018-12-31', 'MM/dd/yy'))) -> true
  • toString(4 == 20) -> 'false'
  • toString(toDate('12/31/18', 'MM/dd/yy', 'es-ES'), 'MM/dd/yy', 'de-DE')

toTimestamp

toTimestamp(<string> : any, [<timestamp format> : string], [<time zone> : string]) => timestamp

Converte uma cadeia de caracteres num carimbo temporal quando lhe é dado um formato opcional de carimbo temporal. Se o carimbo temporal for omitido, é usado o padrão yyyy-[M]M-[d]d hh:mm:ss[.f...] padrão. Pode passar por um fuso horário opcional na forma de GMT, PST, UTC, ou America/Cayman. A timestamp função suporta precisão até milissegundos com um valor de 999. Consulte a classe SimpleDateFormat do Java para os formatos disponíveis.

  • 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

Converte a marca temporal para UTC. Pode passar por um fuso horário opcional na forma de GMT, PST, UTC, ou America/Cayman. Define-se por defeito para o fuso horário atual. Consulte a classe SimpleDateFormat do Java para os formatos disponíveis.

  • 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

Substitua um conjunto de caracteres por outro conjunto de caracteres na cadeia de caracteres. Os caracteres têm uma substituição direta.

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

trim

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

Corta uma sequência de caracteres à esquerda e à direita. Se o segundo parâmetro não for especificado, reduz o espaço em branco. Caso contrário, corta qualquer carácter especificado no segundo parâmetro.

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

true

true() => boolean

Sempre retorna um valor verdadeiro. Use a função syntax(true()) se uma coluna for nomeada true.

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

typeMatch

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

Corresponde ao tipo da coluna. Podes usá-lo apenas em expressões de padrões. A number função corresponde a curto, inteiro, longo, duplo, flutuante ou decimal. A função integral corresponde a short, integer, long. A fractional função corresponde a double, float, decimal. A datetime função compatibiliza o tipo de carimbo de data ou hora.

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

U

unescape

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

Unescapes de uma cadeia de caracteres de acordo com um formato. Valores literais para formatos aceitáveis são json, xml, ecmascript, html, e java.

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

unfold

unfold (<value1>: array) => any

Desdobra uma matriz em um conjunto de linhas e repete os valores das colunas restantes em cada linha.

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

unhex

unhex(<value1>: string) => binary

Unhexes um valor binário de sua representação de cadeia de caracteres. Podes usá-lo com sha2, md5 para converter de string para representação binária.

  • 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

Devolve um conjunto união de itens distintos de dois arrays.

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

upper

upper(<value1> : string) => string

Letras maiúsculas uma cadeia de caracteres.

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

uuid

uuid() => string

Retorna o UUID gerado.

  • uuid()

V

variance

variance(<value1> : number) => double

Obtém a variância de uma coluna.

  • variance(sales)

varianceIf

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

Obtém a variância de uma coluna, com base nos critérios.

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

variancePopulation

variancePopulation(<value1> : number) => double

Obtém a variação populacional de uma coluna.

  • variancePopulation(sales)

variancePopulationIf

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

Obtém a variância populacional de uma coluna, com base em critérios.

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

varianceSample

varianceSample(<value1> : number) => double

Obtém a variância imparcial de uma coluna.

  • varianceSample(sales)

varianceSampleIf

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

Obtém a variância imparcial de uma coluna, com base nos critérios.

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

W

weekOfYear

weekOfYear(<value1> : datetime) => integer

Obtém a semana do ano para uma data fornecida.

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

weeks

weeks(<value1> : integer) => long

Obtém a duração em milissegundos para o número de semanas.

  • weeks(2) -> 1209600000L

X

xor

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

Usa o operador lógico XOR . O mesmo que o ^ operador.

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

Y

year

year(<value1> : datetime) => integer

Obtém o valor do ano de uma data.

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