Compartilhar via


Uso de expressões de transformação de dados nos fluxos de dados de mapeamento

APLICA-SE A: Azure Data Factory Azure Synapse Analytics

Tip

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

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

Este artigo fornece detalhes sobre o uso de todas as expressões e funções compatíveis com o Azure Data Factory e o Azure Synapse Analytics em fluxos de dados de mapeamento. Para obter resumos de cada tipo de função com suporte, consulte os seguintes artigos:

Lista alfabética de todas as funções

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

A

abs

abs(<value1> : number) => number

Retorna o valor absoluto de um número.

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

acos

acos(<value1> : number) => double

Calcula um valor de inverso do 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 vários dias. Adiciona uma duração a um carimbo de data/hora. Anexa uma matriz de tipo semelhante a outra. Similar ao 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 data/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 de data/hora. Opcionalmente, você pode passar 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 de agregação 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, o padrão será uma matriz de cadeia de caracteres vazia. 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 caracteres de entrada tiver mais de um caractere, o valor numérico do primeiro caractere será retornado.

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

asin

asin(<value1> : number) => double

Calcula um valor de inverso do seno.

  • asin(0) -> 0.0

assertErrorMessages

assertErrorMessages() => map

Retorna um mapa de todas as mensagens de erro relacionadas à linha com a 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 chave/valores. Todas as chaves e valores devem ser do mesmo tipo. Se nenhum item for especificado, ele é padronizado a um mapa de cadeia de caracteres para o tipo de cadeia de caracteres. O mesmo que um operador de criação [ -> ]. As chaves e os 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 em um valor nulo. Localiza um valor em um mapa quando uma chave é fornecida. Se a chave não for encontrada, ela retornará um valor nulo.

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

atan

atan(<value1> : number) => double

Calcula um valor inverso da tangente.

  • atan(0) -> 0.0

atan2

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

Retorna 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 de valores de uma coluna, com base em 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. Você pode comparar valores numéricos, strings e datetime.

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

bitwiseAnd

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

Usa o operador bitwise And entre tipos integrais. Similar ao operador &.

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

bitwiseOr

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

Usa o operador bitwise Or entre tipos integrais. Similar ao operador |.

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

bitwiseXor

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

Usa o operador bit a bit Or em todos os tipos integrais. O mesmo que o | 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 de vários tipos de dados primitivos quando é fornecida uma extensão em bits, que só pode ser múltiplo de 8 entre 8 e 512. Você pode usá-lo para calcular uma impressão digital de 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 de vários tipos de dados primitivos quando é fornecida uma extensão em bits, que só pode ser múltiplo de 8 entre 8 e 512. Você pode usá-lo para calcular uma impressão digital de uma linha.

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

byItem

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

Localiza um subitem dentro de uma estrutura ou matriz de estruturas. Se houver várias correspondências, a primeira correspondência será retornada. Se não houver correspondências, um NULL valor será retornado. O valor retornado deve ser o tipo convertido por uma das ações de conversão de tipo (como ? date e ? string). Referenciar nomes de colunas conhecidos no tempo de design por seus nomes. Não há suporte para entradas computadas, mas você pode usar substituições de parâmetro.

  • 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 de acordo com o nome no fluxo. Você pode transmitir um nome de fluxo opcional como o segundo argumento. Se houver várias correspondências, a primeira correspondência será retornada. Se não houver correspondências, um NULL valor será retornado. O valor retornado deve ser o tipo convertido por uma das funções de conversão de tipo (como TO_DATE e TO_STRING). Referenciar nomes de colunas conhecidos no tempo de design por seus nomes. Não há suporte para entradas computadas, mas você pode usar substituições de parâmetro.

  • 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 de acordo com o nome no fluxo. Você pode transmitir um nome de fluxo opcional como o segundo argumento. Se houver várias correspondências, a primeira correspondência será retornada. Se não houver correspondências para uma coluna, a saída inteira será um valor NULL. O valor retornado requer uma função de conversão de tipo (como toDate e toString). Referenciar nomes de colunas conhecidos no tempo de design por seus nomes. Não há suporte para entradas computadas, mas você pode usar substituições de parâmetro.

  • 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 pelo nome no fluxo de origem. O segundo argumento é o nome do fluxo de origem. Se houver várias correspondências, a primeira correspondência será retornada. Se não houver correspondências, um NULL valor será retornado. O valor retornado deve ser o tipo convertido por uma das funções de conversão de tipo (como TO_DATE e TO_STRING). Referenciar nomes de colunas conhecidos no tempo de design por seus nomes. Não há suporte para entradas computadas, mas você pode usar substituições de parâmetro.

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

byOrigins

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

Selecione uma matriz de colunas de acordo com o nome no fluxo. O segundo argumento é o fluxo de onde ele se originou. Se houver várias correspondências, a primeira correspondência será retornada. Se não houver correspondências, um NULL valor será retornado. O valor retornado deve ser o tipo convertido por uma das funções de conversão de tipo (como TO_DATE e TO_STRING). Referenciar nomes de colunas conhecidos no tempo de design por seus nomes. Não há suporte para entradas computadas, mas você pode usar substituições de parâmetro.

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

byPath

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

Localiza um caminho hierárquico por nome no fluxo. Você pode transmitir um nome de fluxo opcional como o segundo argumento. Se nenhum caminho desse tipo for encontrado, ele retornará NULL. Nomes/caminhos de colunas conhecidos no tempo de design devem ser referenciados apenas pelo nome ou pelo caminho de notação de ponto. Não há suporte para entradas computadas, mas você pode usar substituições de parâmetro.

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

byPosition

byPosition(<position> : integer) => any

Seleciona um valor de coluna de acordo com sua posição relativa (com base em 1) no fluxo. Se a posição estiver fora dos limites, ela retornará um NULL valor. O valor retornado deve ser o tipo convertido por uma das funções de conversão de tipo (como TO_DATE ou TO_STRING). Não há suporte para entradas computadas, mas você pode usar substituições de parâmetro.

  • 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

Baseado em condições alternadas, a função case aplica um valor ou outro. Se o número de entradas for par, o outro será definido como NULL 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 cúbica de um número.

  • cbrt(8) -> 2.0

ceil

ceil(<value1> : number) => number

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

  • ceil(-0.1) -> 0

char

char(<Input> : number) => string

Retorna o caractere ASCII representado pelo número de entrada. Se o número for maior que 256, o resultado será 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. Você pode coletar e transformar estruturas em estruturas alternativas durante esse processo. O número de itens é igual ao número de linhas nesse grupo e pode conter valores nulos. O número de itens coletados 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. Você pode coletar e transformar estruturas em estruturas alternativas durante esse processo. O número de itens é igual ao número de linhas nesse grupo e pode conter valores nulos. O número de itens coletados deve ser pequeno.

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

columnNames

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

Obtém os nomes de todas as colunas de saída de um fluxo. Você pode transmitir um nome de fluxo opcional como o primeiro argumento. O segundo argumento também é opcional, com false como o padrão. Se você definir o segundo argumento como true(), o Data Factory retorna apenas colunas que são descompassadas por meio do descompasso 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 transmitir 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. Retorna um inteiro negativo se value1 < value2, 0 if value1 == value2 e um valor positivo se value1 > value2.

  • (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. O mesmo que o + operador com cadeias de caracteres.

  • 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 qualquer elemento na matriz fornecida for avaliado como true no predicado fornecido. A função Th contains espera uma referência a um elemento na 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, ela ignorará NULL os valores 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, valores NULL serão ignorados na contagem.

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

covariancePopulation

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

Obtém a covariância de população 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 tipos de dados primitivos variados ao fornecer um comprimento de bit, que só pode ser de valores 0(256, 224, 256, 384, e 512. Você pode usá-lo para calcular uma impressão digital de 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 relativo 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 de janela. Os valores de empate na ordenação, se houver, são avaliados para a mesma posição.

  • cumeDist()

currentDate

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

Obtém a data atual quando este trabalho começa a ser executado. Você pode passar um fuso horário opcional na forma de GMT, PSTou UTCAmerica/Cayman. O fuso horário local do data center/região do data factory é usado como padrão. Consulte a classe SimpleDateFormat do Java para obter 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 o carimbo de data/hora atual quando o trabalho começa a ser executado com um fuso horário local.

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

currentUTC

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

Obtém o timestamp atual em UTC. Se quiser que seu horário atual seja interpretado em um fuso horário diferente do fuso horário do cluster, você poderá passar um fuso horário opcional na forma de GMT, PST, UTCou America/Cayman. Ele usa como padrão o fuso horário atual. Consulte a classe SimpleDateFormat do Java para obter formatos disponíveis. Para converter o horário UTC em 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 para uma data fornecida.

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

dayOfWeek

dayOfWeek(<value1> : datetime) => integer

Obtém o dia da semana quando é fornecida 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 quando é fornecida uma data.

  • 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 especificado. Você pode usar um segundo argumento (opcional) para especificar qual conjunto de caracteres usar. Os exemplos são US-ASCII, ISO-8859-1, UTF-8 (padrão), UTF-16BEe UTF-16LEUTF-16.

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

degrees

degrees(<value1> : number) => double

Converter radianos em graus.

  • degrees(3.141592653589793) -> 180

denseRank

denseRank() => integer

Computa a classificação de um valor em um grupo de valores especificados na cláusula order by de uma janela. O resultado é 1 mais o número de linhas anteriores ou iguais à linha atual na ordenação da partição. Os valores não produzem lacunas na sequência. A denseRank função funciona mesmo quando os dados não são classificados 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. Similar ao operador /.

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

dropLeft

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

Remove o maior número de 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 o maior número de 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ário com base em um conjunto de caracteres. Um segundo argumento (opcional) pode ser usado para especificar qual conjunto de caracteres usar. Os exemplos são US-ASCII, ISO-8859-1, UTF-8 (padrão), UTF-16BEe UTF-16LEUTF-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. Similar ao 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 o operador de comparação igual a, ignorando maiúsculas e minúsculas. Similar ao operador <=>.

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

escape

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

Escapa uma cadeia de caracteres de acordo com um formato. Os valores literais para o formato aceitável sãojson, , xml, ecmascripte htmljava.


except

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

Retorna um conjunto de diferenças de uma matriz de outras duplicatas descartadas.

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

expr

expr(<expr> : string) => any

Resulta em uma expressão de uma cadeia de caracteres, que é a mesma que escrever essa expressão em uma forma nãoliteral. Você pode usá-lo para passar parâmetros como representações de cadeia de caracteres.

  • 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 false. 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 da matriz que não atendem ao predicado fornecido. Filter espera uma referência a um elemento na 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

Localize o primeiro item de uma matriz que corresponda à condição. Ele usa uma função de filtro em que você pode abordar o item na matriz como #item. Para mapas profundamente aninhados, você pode se referir aos mapas pai 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 assumirá o valor falso.

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

flatten

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

Achatamento de uma matriz ou matrizes em uma única matriz. Matrizes de itens atômicos são retornadas sem alteração. O último argumento é opcional e padronizado como falso para mesclar recursivamente mais do que 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

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

  • floor(-0.1) -> -1

fromBase64

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

Decodifica a cadeia de caracteres codificada em base64 específica. 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 de data/hora do UTC. Opcionalmente, você pode passar o fuso horário na forma de GMT, PST, UTCou America/Cayman. Ele usa como padrão o fuso horário atual. Consulte a classe SimpleDateFormat do Java para obter 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

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

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

greatest

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

Retorna o maior valor entre a lista de valores como entrada, ignorando 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 um valor de coluna de acordo com o nome no fluxo. Você pode transmitir um nome de fluxo opcional como o segundo argumento. Referenciar nomes de colunas conhecidos no tempo de design por seus nomes. Não há suporte para entradas computadas, mas você pode usar substituições de parâmetro.

  • 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 transmitir um nome de fluxo opcional como o segundo argumento. Nomes/caminhos de colunas conhecidos no tempo de design devem ser referenciados apenas pelo nome ou pelo caminho de notação de ponto. Não há suporte para entradas computadas, mas você pode usar substituições de parâmetro.

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

hex

hex(<value1>: binary) => string

Retorna uma representação de cadeia de caracteres hexadecimais 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 data/hora. Você pode passar um fuso horário opcional na forma de GMT, PSTou UTCAmerica/Cayman. O fuso horário local é usado como o padrão. Consulte a classe SimpleDateFormat do Java para obter 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 em uma condição. Se o outro não for especificado, o valor será considerado NULL. Ambos os valores devem ser compatíveis (como numérico e cadeia de caracteres).

  • 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

Retorna o primeiro item não nulo quando dado duas ou mais entradas. Essa 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úscula. Palavras são identificadas como separadas por espaços em branco.

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

instr

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

Localiza a posição (baseada em 1) da substring de caracteres dentro de uma cadeia de caracteres. Se não for encontrado, 0 será retornado.

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

intersect

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

Retorna um conjunto de interseção 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 bit está definida neste conjunto de bits.

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

isBoolean

isBoolean(<value1>: string) => boolean

Verifica se o valor da cadeia de caracteres é um valor booliano 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 de caracteres é 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 caracteres de data de entrada é uma data usando um formato de data de entrada opcional. Consulte a classe SimpleDateFormat do Java para obter formatos disponíveis. Se o formato de data de entrada for omitido, o formato padrão será yyyy-[M]M-[d]d. Os formatos aceitos 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 de caracteres é um valor decimal quando fornecido 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 excluída. Para transformações que levam mais de um fluxo de entrada, você pode passar o índice (baseado em 1) do fluxo. O índice de fluxo deve ser ou 1 , 2e o valor padrão é 1.

  • isDelete()
  • isDelete(1)

isDistinct

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

Localiza se uma coluna ou conjunto de colunas for diferente. Ele 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 de caracteres é 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 levam mais de um fluxo de entrada, você pode passar o índice (baseado em 1) do fluxo. O índice de fluxo deve ser 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 de caracteres é 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 levam mais de um fluxo de entrada, você pode passar o índice (baseado em 1) do fluxo. O índice de fluxo deve ser ou 1 , 2e 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 levam mais de um fluxo de entrada, você pode passar o índice (baseado em 1) do fluxo. O índice de fluxo deve ser ou 1 , 2e o valor padrão é 1.

  • isInsert()
  • isInsert(1)

isInteger

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

Verifica se o valor da cadeia de caracteres é 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 de caracteres é 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 é correspondida na pesquisa. Para transformações que levam mais de um fluxo de entrada, você pode passar o índice (baseado em 1) do fluxo. O índice de fluxo deve ser ou 1 , 2e 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 de caracteres é um valor curto quando dado um formato opcional de acordo com as regras de toShort().

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

isTimestamp

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

Verifica se a string de data de entrada é um timestamp usando um formato de timestamp de entrada opcional. Consulte a classe SimpleDateFormat do Java para obter formatos disponíveis. Se o carimbo de data/hora for omitido, o padrão padrão yyyy-[M]M-[d]d hh:mm:ss[.f...] será usado. Você pode passar um fuso horário opcional na forma de GMT, PSTou UTCAmerica/Cayman. A função timestamp dá suporte a precisão de até milissegundos com um valor de 999. Consulte a classe SimpleDateFormat do Java para obter 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 levam mais de um fluxo de entrada, você pode passar o índice (baseado em 1) do fluxo. O índice de fluxo deve ser ou 1 , 2e 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 levam mais de um fluxo de entrada, você pode passar o índice (baseado em 1) do fluxo. O índice de fluxo deve ser ou 1 , 2e 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 chave/valores. O primeiro parâmetro é uma matriz de chaves e o segundo é a matriz de valores. Ambas as matrizes devem ter comprimento igual.

  • 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 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 para olhar para trás e o valor padrão é 1. Se não houver tantas linhas, um valor nulo será retornado, a menos que um valor padrão seja especificado.

  • 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, ele será considerado falso.

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

lastDayOfMonth

lastDayOfMonth(<value1> : datetime) => date

Obtém a última data do mês quando é fornecida 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 nas linhas n após a linha atual. O segundo parâmetro é o número de linhas a serem aguardadas e o valor padrão é 1. Se não houver tantas linhas, um valor nulo será retornado, a menos que um valor padrão seja especificado.

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

least

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

Usa o operador de comparação menor ou igual a. Similar ao 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 substring começando no índice 1 com uma quantidade específica de caracteres. O mesmo que SUBSTRING(str, 1, n).

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

length

length(<value1> : string) => integer

Retorna o comprimento da cadeia de caracteres.

  • length('dumbo') -> 5

lesser

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

Usa o operador de comparação menor que. Similar ao 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. Similar ao 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 cadeias de caracteres.

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

like

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

Usa um padrão de cadeia de caracteres que é correspondido literalmente. As exceções são os seguintes símbolos especiais: _ corresponde a qualquer caractere na entrada (semelhante a .* em posix expressões regulares). % corresponde a zero ou mais caracteres na entrada (semelhante a .* em posix expressões regulares). O caractere de escape é ''. Se um caractere de escape precede um símbolo especial ou outro caractere de escape, o caractere seguinte será correspondido literalmente. Não é válido para escape de qualquer outro caractere.

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

locate

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

Encontra a posição (1 com base) da substring em uma cadeia começando em uma determinada posição. Se a posição for omitida, a pesquisa começará do início da cadeia. Se não for encontrado, 0 será retornado.

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

log

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

Calcula o valor do logaritmo. Você pode fornecer uma base opcional ou um número de Euler, se usado.

  • log(100, 10) -> 2

log10

log10(<value1> : number) => double

Calcula o valor de log com base 10.

  • log10(100) -> 2

lookup

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

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

  • cacheSink#lookup(movieId)

lower

lower(<value1> : string) => string

Coloca em minúsculas todos os caracteres de uma cadeia de caracteres.

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

lpad

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

Preenche à esquerda a cadeia pelo preenchimento fornecido até que a cadeia tenha um determinado comprimento. Se a cadeia de caracteres for igual ou maior que o comprimento, a cadeia de caracteres será cortada até o comprimento.

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

ltrim

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

Corta uma cadeia de caracteres inicial à esquerda. Se o segundo parâmetro não for especificado, ele cortará o espaço em branco. Caso contrário, ele cortará qualquer caractere especificado no segundo parâmetro.

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

M

map

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

Mapeia cada elemento da matriz para um novo elemento usando a expressão fornecida. A função map espera por uma referência a um elemento dentro da função de expressão identificado 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. Ele usa uma função de mapeamento em que você pode abordar 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

Mapeia condicionalmente uma matriz para outra matriz do mesmo tamanho ou menor. Os valores podem ser de qualquer tipo de dados, incluindo structTypes. Ele usa uma função de mapeamento em que você pode abordar o item na matriz como #item e o índice atual como #index. Para mapas profundamente aninhados, você pode se referir aos mapas pai 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 da matriz para um novo elemento usando a expressão fornecida. A função map 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

Faz um loop de 1 até o comprimento para criar uma matriz desse comprimento. Ele usa uma função de mapeamento em que você pode abordar o índice na matriz como #index. Para mapas profundamente aninhados, você pode se referir aos mapas pai 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 de diferentes tipos de dados primitivos e retorna uma cadeia de caracteres hexáxe de 32 caracteres. Você pode usá-lo para calcular uma impressão digital de 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 uma data em milissegundos. Você pode passar um fuso horário opcional na forma de GMT, PSTou UTCAmerica/Cayman. O fuso horário local é usado como o padrão. Consulte a classe SimpleDateFormat do Java para obter 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

Calcula a duração em milissegundos a partir de um determinado 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 um carimbo de data/hora. Subtrai dois timestamps para obter a diferença em milissegundos. Similar ao 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 um carimbo de data/hora. Você pode passar um fuso horário opcional na forma de GMT, PSTou UTCAmerica/Cayman. O fuso horário local é usado como o padrão. Consulte a classe SimpleDateFormat do Java para obter 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 do coletor armazenado em cache usando as chaves especificadas que correspondem às chaves do coletor armazenado em cache.

  • cacheSink#mlookup(movieId)

mod

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

Obtém o módulo de um par de números. Similar ao 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/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 arredondar o cálculo. Você pode passar um fuso horário opcional na forma de GMT, PSTou UTCAmerica/Cayman. O fuso horário local é usado como o padrão. Consulte a classe SimpleDateFormat do Java para obter 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. Similar ao operador *.

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

N

negate

negate(<value1> : number) => number

Torna um número negativo. 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 pela ID da partição.

  • nextSequence() == 12313112 -> false

normalize

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

Normaliza o valor da cadeia de caracteres para separar caracteres Unicode acentuados.

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

not

not(<value1> : boolean) => boolean

Usa 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. Similar ao operador !=.

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

nTile

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

A função nTile divide as linhas para cada partição de janela em buckets n que variam de 1 até, no máximo, n. Os valores do bucket diferem por, no máximo, 1. Se o número de linhas na partição não se dividir uniformemente em um número de buckets, os valores restantes serão distribuídos um por bucket, começando com o primeiro bucket. A função nTile é útil para o cálculo de tertiles, quartis, decis e outras estatísticas de resumo comuns. A função calcula duas variáveis durante a inicialização. O tamanho de um bucket regular tem uma linha extra adicionada a ele. 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 bucket atual e o número da linha em que o bucket muda (bucketThreshold). Quando o número da linha atual atinge o limite do bucket, o valor do bucket aumenta em um. O limite aumenta de acordo com o tamanho do bucket (mais um extra se o bucket atual estiver preenchido).

  • nTile()
  • nTile(numOfBuckets)

null

null() => null

Retorna um NULL valor. Use a função syntax(null()) se uma coluna for nomeada null. Qualquer operação que use resultados nulos em um 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 em que as colunas foram criadas. Deve ser incluído em outra função.

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

output

output() => any

Retorna a primeira linha dos resultados do coletor armazenado em cache.

  • cacheSink#output()

outputs

output() => any

Retorna todo o conjunto de linhas de saída dos resultados do coletor armazenado em cache.

  • cacheSink#outputs()

P

partitionId

partitionId() => integer

Retorna a ID da partição atual na qual a linha de entrada está.

  • partitionId()

pMod

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

Fornece 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 à potência 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

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

  • random(1) == 1 -> false

rank

rank() => integer

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

  • rank()

reassociate

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

Transforma um mapa associando as chaves a novos valores. Ele usa uma função de mapeamento em que você pode abordar 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 função reduce espera uma referência a um acumulador e um elemento na primeira função de expressão como #acc e #item. Ele espera que o valor #result resultante 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 subcadeia de caracteres correspondente para um determinado padrão regex. O último parâmetro identifica o grupo de correspondência e assume 1 como padrão se omitido. Use <regex> para corresponder a uma cadeia sem escape. O índice 0 retorna todas as correspondências. Sem grupos de correspondência, o índice 1 e acima não retornam nenhum 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 determinado padrão regex. Use <regex> para corresponder a uma cadeia sem 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 subcadeia de caracteres na cadeia de caracteres específica. Use <regex> para corresponder a uma cadeia sem 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 no 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 de caracteres por outra subcadeia de caracteres na cadeia de caracteres específica. Se o último parâmetro for omitido, ele usará como padrão uma cadeia de caracteres 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 substring com um número de caracteres à 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 determinado padrão regex.

  • 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 dada uma escala opcional e um modo de arredondamento opcional. Se a escala for omitida, o padrão será 0. Se o modo for omitido, ele usará como padrão ROUND_HALF_UP(5). Os valores para arredondamento incluem:

  1. ROUND_UP: modo de arredondamento para longe de zero.

  2. ROUND_DOWN: modo de arredondamento para arredondar em direção ao zero.

  3. ROUND_CEILING: modo de arredondamento para arredondar em direção ao infinito positivo. (O mesmo que ROUND_UP se a entrada for positiva. Se negativo, ele se comporta 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 negativo, ele se comporta 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 sejam equidistantes, caso em que se comporta como ROUND_UP. (Mais comum + padrão para o Fluxo de Dados.)

  6. ROUND_HALF_DOWN: modo de arredondamento para arredondar em direção ao "vizinho mais próximo", a menos que ambos os vizinhos sejam equidistantes, caso em que 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, portanto, 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

Preenche à direita a cadeia de caracteres com o preenchimento fornecido até que a cadeia tenha um determinado comprimento. Se a cadeia de caracteres for igual ou maior que o comprimento, a cadeia de caracteres será cortada até o comprimento.

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

rtrim

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

Corta uma cadeia de caracteres final. Se o segundo parâmetro não for especificado, ele cortará o espaço em branco. Caso contrário, ele cortará qualquer caractere 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. Você pode passar um fuso horário opcional na forma de GMT, PSTou UTCAmerica/Cayman. O fuso horário local é usado como o padrão. Consulte a classe SimpleDateFormat do Java para obter formatos disponíveis.

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

seconds

seconds(<value1> : integer) => long

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

  • seconds(2) -> 2000L

setBitSet

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

Define posições de bit 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 de diferentes tipos de dados primitivos e retorna uma cadeia de caracteres hexáxe de 40 caracteres. Você pode usá-lo para calcular uma impressão digital de 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 diferentes tipos de dados primitivos, para um comprimento de bit determinado, que só pode ser dos valores 0(256), 224, 256, 384 e 512. Você pode usá-lo para calcular uma impressão digital de uma linha.

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

sin

sin(<value1> : number) => double

Calcula um valor de seno.

  • sin(2) -> 0.9092974268256817

sinh

sinh(<value1> : number) => double

Calcula um valor de seno hiperbólico.

  • sinh(0) -> 0.0

size

size(<value1> : any) => integer

Localiza o tamanho de uma matriz ou tipo de mapa.

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

skewness

skewness(<value1> : number) => double

Obtém a distorção de uma coluna.

  • skewness(sales)

skewnessIf

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

Obtém a distorção de uma coluna, com base em 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 a partir de uma posição. A posição é baseada em 1. Se o comprimento for omitido, ele usará como padrão o final da cadeia de caracteres.

  • 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

Classifica a matriz usando a função de predicado fornecida. A função sort 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 código soundex da 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 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 em critérios.

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

stddevPopulation

stddevPopulation(<value1> : number) => double

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

  • stddevPopulation(sales)

stddevPopulationIf

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

Obtém o desvio padrão de população de uma coluna, com base em 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 nos critérios.

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

subDays

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

Subtrai dias de uma data ou carimbo de data/hora. Igual ao operador - de data.

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

subMonths

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

Subtrai meses de um carimbo de data ou hora.

  • subMonths(toDate('2016-09-30'), 1) -> toDate('2016-08-31')

substring

substring(<string to subset> : string, <from 1-based index> : integral, [<number of characters> : integral]) => string

Extrai uma subcadeia de caracteres de um determinado comprimento a partir de uma posição. A posição é baseada em 1. Se o comprimento for omitido, ele usará como padrão o final da cadeia de caracteres.

  • 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( <cadeia de caracteres a ser dividida><delimitador>substringIndex(: string, : string, <número de ocorrências do delimitador> : número inteiro]) = >cadeia de caracteres

Extrai a substring antes de contar ocorrências do delimitador. Se a contagem for positiva, tudo à esquerda do delimitador final (contando da esquerda) será retornado. Se a contagem for negativa, tudo à direita do delimitador final (contando da direita) será retornado.

  • 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 de tangente.

  • tan(0) -> 0.0

tanh

tanh(<value1> : number) => double

Calcula um valor de tangente hiperbólica.

  • tanh(0) -> 0.0

toBase64

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

Codifica a cadeia de caracteres 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 valor numérico, data, carimbo de data/hora ou cadeia de caracteres em representação binária.

  • toBinary(3) -> [0x11]

toBoolean

toBoolean(<value1> : string) => boolean

Converte um valor de (t, , true, y, yes, 1) em true e (f, false, , n, no, 0) para 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 numérico ou cadeia de caracteres em um valor de byte. Você 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 data usando um formato de data de entrada opcional. Consulte a classe SimpleDateFormat do Java para obter formatos disponíveis. Se o formato de data de entrada for omitido, o formato padrão será yyyy-[M]M-[d]d. Os formatos aceitos 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 numérico ou cadeia de caracteres em um valor decimal. Se a precisão e a escala não forem especificadas, o padrão será (10,2). Você pode usar um formato decimal Java opcional para a conversão. Use um formato de localidade 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 numérico ou cadeia de caracteres em um valor duplo. Você pode usar um formato decimal Java opcional para a conversão. Use um formato de localidade 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 numérico ou cadeia de caracteres em um valor flutuante. Você 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 numérico ou cadeia de caracteres em um valor inteiro. Você pode usar um formato decimal Java opcional para a conversão. Trunca qualquer longo, float, duplo.

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

toLong

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

Converte qualquer numérico ou cadeia de caracteres em um valor longo. Você pode usar um formato decimal Java opcional para a conversão. Trunca qualquer float, duplo.

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

topN

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

Obtém os N principais valores para esta 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 numérico ou cadeia de caracteres em um valor resumido. Você pode usar um formato decimal Java opcional para a conversão. Trunca qualquer inteiro, longo, float, 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 dados primitivo em uma cadeia de caracteres. Você pode especificar um formato para números e data. Se não for especificado, o padrão do sistema será escolhido. O formato decimal java é usado para números. Consulte a classe SimpleDateFormat do Java para obter formatos disponíveis. O formato padrão é yyyy-MM-dd. Para um carimbo de data ou hora, você pode, opcionalmente, especificar uma localidade.

  • 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 em um carimbo de data/hora quando um formato de carimbo de data/hora opcional é fornecido. Se o carimbo de data/hora for omitido, o padrão padrão yyyy-[M]M-[d]d hh:mm:ss[.f...] será usado. Você pode passar um fuso horário opcional na forma de GMT, PSTou UTCAmerica/Cayman. A função timestamp dá suporte a precisão de até milissegundos com um valor de 999. Consulte a classe SimpleDateFormat do Java para obter 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 o timestamp para UTC. Você pode passar um fuso horário opcional na forma de GMT, PSTou UTCAmerica/Cayman. Ele usa como padrão o fuso horário atual. Consulte a classe SimpleDateFormat do Java para obter 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

Substitui um conjunto de caracteres por outro conjunto de caracteres na cadeia de caracteres. Os caracteres são substituídos um a um.

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

trim

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

Apara uma cadeia de caracteres inicial e final. Se o segundo parâmetro não for especificado, ele cortará o espaço em branco. Caso contrário, ele cortará qualquer caractere especificado no segundo parâmetro.

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

true

true() => boolean

Sempre retorna um valor true. 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. Você pode usá-lo somente em expressões padrão. A função number corresponde a short, integer, long, double, float ou decimal. A função integral corresponde a short, integer, long. A fractional função corresponde a double, float, decimal. A função datetime corresponde ao tipo data ou carimbo de data/hora.

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

U

unescape

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

Ignora o escape de uma cadeia de caracteres de acordo com um formato. Valores literais para formatos aceitáveis sãojson, , xml, ecmascripte htmljava.

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

unfold

unfold (<value1>: array) => any

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

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

unhex

unhex(<value1>: string) => binary

Cancela o hexa de um valor binário de sua representação de cadeia de caracteres. Você pode usá-lo com sha2. md5 para converter de cadeia de caracteres em 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

Retorna um conjunto de união de itens distintos de duas matrizes.

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

upper

upper(<value1> : string) => string

Coloca em maiúsculas todos os caracteres de uma cadeia de caracteres.

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

uuid

uuid() => string

Retorna o UUID gerado.

  • uuid()

V

variance

variance(<value1> : number) => double

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

  • variance(sales)

varianceIf

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

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

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

variancePopulation

variancePopulation(<value1> : number) => double

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

  • variancePopulation(sales)

variancePopulationIf

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

Obtém a variação da população de uma coluna, com base em critérios.

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

varianceSample

varianceSample(<value1> : number) => double

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

  • varianceSample(sales)

varianceSampleIf

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

Obtém a variação imparcial de uma coluna, com base em critérios.

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

W

weekOfYear

weekOfYear(<value1> : datetime) => integer

Obtém a semana do ano quando 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 . Similar ao 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