Transformação Replace

OBSERVAÇÃO: as transformações fazem parte da linguagem por trás e que está não diretamente acessível aos usuários. Esse conteúdo é mantido apenas para fins de referência.

São substituídos os valores dentro da coluna especificada ou das colunas especificadas com base no literal, no padrão ou na localização da string dentro do valor da célula, conforme especificado na transformação.

A transformação replace é usada principalmente para corresponder a padrões dentro de uma string. Para a substituição completa da célula em todas as linhas da coluna, use a transformação set. Consulte Transformação Set.

Uso básico

Exemplo do parâmetro on:

Especifica o literal ou o padrão da string de correspondência.

replace col: text on: 'honda' with:'toyota' global: true

Resultado: é feita a substituição de todas as instâncias de text por honda na coluna toyota. Se honda aparecer duas vezes em uma célula, as duas instâncias serão substituídas por toyota.

Exemplo do parâmetro at:

Especifica os caracteres inicial e final como valores de índice para a correspondência.

replace col: text at: 2,6 with:'replacement text'

Resultado: para todos os valores na coluna text, a substring entre os caracteres 2 e 6 na coluna é substituída pelo valor replacement text. Se o comprimento do valor da célula original for inferior a 6, o valor de substituição será inserido.

Parâmetros

replace col:column_ref with:'literal_replacement' [at:(start_index,end_index)] [on:string_literal_pattern] [global:true|false]

TokenObrigatório?Tipo de dadosDescrição
replaceStransformaçãoNome da transformação.
colSstringNome da coluna em que as substituições são feitas
withSveja abaixoValor literal para substituir os valores com correspondência
afterNstringPadrão ou literal de string que precede o padrão a corresponder
atNmatrizConjunto de dois números inteiros que identifica os índices dos caracteres inicial e final de correspondência
beforeNstringPadrão ou literal de string que aparece após o padrão de correspondência
fromNstringLiteral ou padrão de string que identifica o início do padrão de correspondência
toNstringLiteral ou padrão de string que identifica o final do padrão de correspondência
onNstringLiteral ou padrão de string que identifica os caracteres da célula a serem substituídos
globalNbooleanoSe for true, todas as ocorrências de correspondências são substituídas. O padrão é false.

Para mais informações sobre os padrões de sintaxe, consulte as Observações sobre a sintaxe da documentação da linguagem.

col

Identifica as colunas às quais aplicar a transformação. Especifique uma ou mais colunas.

Para especificar várias colunas, leve em conta estes fatores:

  • Os nomes de colunas distintas são separados por vírgulas. Os valores dos nomes de colunas diferenciam maiúsculas de minúsculas.
  • Se for o caso, vários valores podem ser especificados com um til (~).

replace col: MyCol on: 'MyString' with: 'myNewString'

Resultado: é feita a substituição do valor MyString na coluna MyCol por myNewString.

Observações sobre o uso:

Obrigatório?Tipo de dados
SimString (nome da coluna)

with

Transformação Merge: especifica o delimitador entre as colunas que foram mescladas. Se esse parâmetro não for especificado, nenhum delimitador será aplicado.

Transformação Replace: especifica o valor de substituição.

Para a transformação replace, ele precisa ser um valor literal. Você pode aplicar valores do tipo string ou outros tipos de dados. Após a substituição, o tipo de dados da coluna é reinferido.

OBSERVAÇÃO: alguns grupos de captura de expressões regulares com referências, como $2, são aceitos em todos os ambientes em execução. Consulte Referências do grupo de captura.

Observações sobre o uso:

Obrigatório?Tipo de dados
SimLiteral de qualquer tipo de dados

after

replace col:Primary_URL with:'' after:`http({any}|):`

Resultado: todo o conteúdo após o identificador de protocolo (http: ou https:) é descartado.

Um identificador de padrão que precede o valor ou o padrão a corresponder. Defina o valor do parâmetro after usando literais de string, expressões regulares ou padrões do Cloud Dataprep.

Observações sobre o uso:

Obrigatório?Tipo de dados
NãoString (literal ou padrão de string)

at

replace col: MyCol at: 2,6 with:'MyNewString'

Resultado: o conteúdo de MyCol, iniciado no segundo caractere da coluna e que se estende até o sexto caractere, é substituído pelo valor MyNewString.

Identifica os pontos inicial e final do padrão de interesse.

As entradas dos parâmetros estão na forma de x,y, em que x e y são números inteiros positivos que indicam os caracteres inicial e final, respectivamente, do padrão de interesse.

  • x precisa ser menor que y.
  • Se y for maior que o comprimento do valor, o padrão é definido ao final do valor, o que cria uma correspondência.

Observações sobre o uso:

Obrigatório?Tipo de dados
É necessário usar o parâmetro on ou atMatriz de dois números inteiros (X,Y)

before

Um identificador de padrão que ocorre após o valor ou o padrão de correspondência. Defina o padrão usando literais de string, expressões regulares ou padrões do Cloud Dataprep.

replace col:credit_card with:'****-***-***-' after:`{start}` before:`({digit}{4}){end}`

Resultado:

  • Substitui os primeiros três grupos de dígitos na coluna credit_card por asteriscos, efetivamente mascarando o número.

Observações sobre o uso:

Obrigatório?Tipo de dados
NãoString ou padrão

from

Identifica o padrão que marca o início do valor de correspondência. Esse padrão pode ser um literal de string, um padrão do Cloud Dataprep ou uma expressão regular. O valor from está incluído na correspondência.

replace col: MyCol from: '<END>' with: ''

Resultado:

  • É removido todo o conteúdo da string <END> até o final do valor da string em MyCol.

Observações sobre o uso:

Obrigatório?Tipo de dados
NãoString ou padrão

to

Identifica o padrão que marca o final do valor de correspondência. Esse padrão pode ser um literal de string, um padrão do Cloud Dataprep ou uma expressão regular. O valor to está incluído na correspondência.

replace col:ssn with:'***-**-' to:`{digit}{3}-{digit}{2}-`

Resultado:

  • Substitua os dois primeiros grupos de números na coluna ssn por asteriscos para mascarar os dados.

Observações sobre o uso:

Obrigatório?Tipo de dados
NãoString ou padrão

on

replace col: MyCol on: `###ERROR` with:'No error here'

Identifica o padrão de correspondência. Esse padrão consiste em um literal de string, um padrão do Cloud Dataprep ou uma expressão regular.

Dica: é possível inserir o caractere Unicode equivalente ao valor desse parâmetro. Basta usar uma expressão regular no formato /\uHHHH/. Por exemplo, /\u0013/ representa o caractere Unicode 0013 (retorno de carro). Para mais informações, consulte Caracteres especiais compatíveis de expressões regulares.

Observações sobre o uso:

Obrigatório?Tipo de dados
É necessário usar o parâmetro on ou atString ou padrão

global

Indica se alguma correspondência deve ser aplicada a uma instância ou a todas.

  • (Padrão) Se for false, a transformação será aplicada somente à primeira instância.
  • Se for true, ela será aplicada a todas as correspondências encontradas.

OBSERVAÇÃO: se você especificar o padrão de modo que ele corresponda ao parâmetro at, haverá apenas uma possível instância de substituição. Portanto, o parâmetro global não será usado.

Observações sobre o uso:

Obrigatório?Tipo de dados
Não. O padrão é false.Booleano

Exemplos

Exemplo: limpar dados de contato de marketing com replace, set e extract

Neste exemplo, ilustramos os diferentes usos das seguintes transformações para substituir ou extrair dados de células:

  • set: determina os valores a serem usados em uma coluna predefinida. Consulte Transformação Set.

    Dica: use a transformação derive para gerar uma coluna com um conjunto definido de valores. Consulte Transformação Derive.

  • replace: substitui um padrão ou um literal de string que aparece nos valores de uma coluna por uma string específica. Consulte Transformação Replace.
  • extract: extrai um valor com base em padrões de uma coluna e o armazena em uma coluna nova. Consulte Transformação Extract.

Fonte:

O conjunto de dados a seguir contém informações de contato que foram coletadas por sua plataforma de marketing a partir das ações realizadas pelos visitantes em seu site. É necessário limpar esses dados e prepará-los para uso em uma plataforma de análise.

LeadIdLastNameFirstNameTitlePhoneRequest
LE160301001JonesCharlesDiretor técnico executivo415-555-1212reg
LE160301002LyonsEdward 415-012-3456download de artigo
LE160301003MartinMaryCEO510-555-5555excluir conta
LE160301004SmithTaliaEngenheiro510-123-4567avaliação gratuita

Transformação:

Coluna Title: por exemplo, primeiro você constata que faltam alguns dados. A plataforma de análise reconhece o valor "#MISSING#" da string como indicador de um valor ausente. Então, você clica na barra de valores ausentes na coluna "Title". Em seguida, seleciona o cartão de sugestão Replace. Observe que a substituição padrão é um valor nulo, por isso clique em Modify para atualizá-lo:

set col: Title value: IF(ISMISSING([Title]),'#MISSING#',Title)

Coluna Request: na coluna Request, a entrada reg precisa ser limpa. Adicione a seguinte transformação, que substitui esse valor:

replace col:Request with:'Registration' on:`{start}reg{end}`

A transformação acima usa um padrão do Cloud Dataprep como a expressão do parâmetro on:. Essa expressão indica correspondência do início do valor da célula, o literal de string reg, e do final do valor da célula, que corresponde somente com valores de células completos de reg.

Essa transformação funciona muito bem na amostra, mas o que acontece se o valor for Reg, com um R maiúsculo? Esse valor pode não ser substituído. Para melhorar a transformação, modifique-a usando o seguinte padrão do Cloud Dataprep no parâmetro on que captura as diferenças no uso de maiúsculas e minúsculas:

replace col:Request with:'Registration' on:`{start}{[R|r]}eg{end}`

Adicione a transformação acima à receita. Então você percebe que, nos valores na coluna Request, a primeira letra de cada palavra precisa estar em maiúscula:

set col:Request value:PROPER(Request)

Agora, todos os valores são exibidos com a primeira letra de cada palavra em maiúscula.

Coluna Phone: é possível que tenham surgido problemas com os valores da coluna Phone. Nos Estados Unidos, o prefixo 555 é usado apenas para coletar informações. Os números de telefone com esse prefixo são inválidos.

Na grade de dados, você seleciona a primeira instância de 555 na coluna. No entanto, ele seleciona todas as instâncias desse padrão, incluindo aquelas que você não quer modificar. Nesse caso, selecione a instância semelhante de 555 na outra linha. Nos cartões de sugestão, clique na transformação "Replace".

Observe, no entanto, que a transformação "Replace" padrão também destacou o segundo padrão de 555 em uma instância, o que pode ser um problema em outros números de telefone não exibidos na amostra. É necessário modificar o padrão de seleção para essa transformação. No parâmetro on: abaixo, o padrão do Cloud Dataprep foi modificado para corresponder apenas às instâncias de 555 que aparecem no segundo segmento, no formato de número de telefone:

replace col: Phone on: `{start}%{3}-555-%*{end}` with: '#INVALID#' global: true

A construção com o caractere curinga foi adicionada (%*). É possível adicionar um padrão que combine com os últimos quatro caracteres exatamente (%{4}), mas esse padrão de combinação não capturaria a possibilidade de um número de telefone que tivesse um ramal no final. A expressão acima faz isso.

OBSERVAÇÃO: a transformação acima cria valores que não correspondem ao tipo de dados de número de telefone. Nesse exemplo, no entanto, essas ausências de correspondência são entendidas como benéficas para o sistema que usa o resultado do Google Dataprep.

Coluna LeadId: é possível que a coluna do identificador principal (LeadId) contenha algumas informações incorporadas: um valor de data e um identificador da instância no dia. As etapas a seguir podem ser seguidas para detalhar essas informações. O primeiro cria uma coluna de trabalho separada com essas informações, o que nos permite preservar a coluna original não modificada:

derive type:single value:LeadId as:'LeadIdworking'

Agora é possível trabalhar fora desta coluna para criar novas colunas. Use a seguinte transformação "Replace" para remover os dois caracteres principais, que não são necessários para as novas colunas:

replace col:LeadIdworking with:'' on:'LE'

As informações da data agora estão perfeitamente contidas nos primeiros caracteres da coluna de trabalho. Para extrair esses valores para uma nova coluna, use a seguinte expressão:

extract col: LeadIdworking on: `{start}%{6}`

A nova coluna LeadIdworking2 agora contém apenas as informações da data. A limpeza dessa coluna requer a reformatação dos dados, redigitando-os como um tipo Datetime e, em seguida, aplicando a função dateformat para formatá-los de maneira satisfatória. Essas etapas são deixadas como um exercício separado.

Por enquanto, vamos renomear a coluna:

rename col:LeadIdworking1 to:'LeadIdDate'

Na primeira coluna de trabalho, agora é possível remover as informações da data usando a seguinte expressão:

replace col: LeadIdworking on: `{start}%{6}` with: ''

É possível renomear esta coluna para indicar que é um identificador diário:

rename col:LeadIdworking to:'LeadIdDaily'

Resultados:

LeadIdLeadIdDailyLeadIdDateLastNameFirstNameTitlePhoneRequest
LE160301001001160301JonesCharlesDiretor técnico executivo#INVALID#Registro
LE160301002002160301LyonsEdward#AUSENTE#415-012-3456Download de artigo
LE160301003003160301MartinMaryCEO#INVALID#Excluir conta
LE160301004004160301SmithTaliaEngenheiro510-123-4567Avaliação gratuita

Exemplo: como usar referências do grupo de captura para substituições

Os grupos de captura podem ser aproveitados pela transformação replace. Esses grupos são definidos nos padrões do Cloud Dataprep e nas expressões regulares usadas para pesquisar valores dentro de uma coluna. Um grupo de captura é um subpadrão dentro do padrão que define um valor. Esse valor pode servir de referência na substituição.

OBSERVAÇÃO: para essa transformação, os grupos de captura só podem ser especificados no parâmetro on.

No exemplo a seguir, o parâmetro on define dois grupos de captura, e o parâmetro with faz referência a eles na substituição. Neste exemplo, qualquer entrada na coluna camel_case que contenha uma letra minúscula seguida imediatamente por uma letra maiúscula é substituída pelo mesmo valor com um espaço inserido no meio. O valor $1 faz referência ao primeiro grupo de captura no padrão do Cloud Dataprep correspondente:

replace col:camel_case with:'$1 $2' on:`({lower})({upper})` global:true

Grupo de capturaDescriçãoReferência de substituição
({lower})Uma única letra minúscula$1
({upper})Uma única letra maiúscula$2

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Documentação do Google Cloud Dataprep
Precisa de ajuda? Acesse nossa página de suporte.