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]
Token | Obrigatório? | Tipo de dados | Descrição |
---|---|---|---|
replace | S | transformação | Nome da transformação. |
col | S | string | Nome da coluna em que as substituições são feitas |
with | S | veja abaixo | Valor literal para substituir os valores com correspondência |
after | N | string | Padrão ou literal de string que precede o padrão a corresponder |
at | N | matriz | Conjunto de dois números inteiros que identifica os índices dos caracteres inicial e final de correspondência |
before | N | string | Padrão ou literal de string que aparece após o padrão de correspondência |
from | N | string | Literal ou padrão de string que identifica o início do padrão de correspondência |
to | N | string | Literal ou padrão de string que identifica o final do padrão de correspondência |
on | N | string | Literal ou padrão de string que identifica os caracteres da célula a serem substituídos |
global | N | booleano | Se 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 |
---|---|
Sim | String (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 |
---|---|
Sim | Literal 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ão | String (literal ou padrão de string) |
- Os parâmetros
after
efrom
são muito semelhantes. O parâmetrofrom
inclui o valor correspondente como parte da string substituída. - O parâmetro
after
pode ser usado comto
,on
oubefore
. Consulte Correspondência de posição da cláusula de padrão.
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 quey
.- 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 at | Matriz de dois números inteiros (X,Y ) |
- Para mais informações, consulte Correspondência de posição da cláusula de padrão.
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ão | String ou padrão |
- Os parâmetros
before
eto
são muito semelhantes. O parâmetroto
inclui o valor correspondente como parte da string substituída. before
pode ser usado comfrom
,on
ouafter
. Consulte Correspondência de posição da cláusula de 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 emMyCol
.
Observações sobre o uso:
Obrigatório? | Tipo de dados |
---|---|
Não | String ou padrão |
- Os parâmetros
after
efrom
são muito semelhantes. O parâmetrofrom
inclui o valor correspondente como parte da string substituída. - O parâmetro
from
pode ser utilizado comto
oubefore
. Consulte Correspondência de posição da cláusula de 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ão | String ou padrão |
- Os parâmetros
before
eto
são muito semelhantes. O parâmetroto
inclui o valor correspondente como parte da string substituída. - O parâmetro
to
pode ser utilizado comfrom
ouafter
. Consulte Correspondência de posição da cláusula de 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 at | String ou padrão |
- Para saber mais informações, consulte Correspondência de posição da cláusula de 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.
LeadId | LastName | FirstName | Title | Phone | Request |
---|---|---|---|---|---|
LE160301001 | Jones | Charles | Diretor técnico executivo | 415-555-1212 | reg |
LE160301002 | Lyons | Edward | 415-012-3456 | download de artigo | |
LE160301003 | Martin | Mary | CEO | 510-555-5555 | excluir conta |
LE160301004 | Smith | Talia | Engenheiro | 510-123-4567 | avaliaçã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:
LeadId | LeadIdDaily | LeadIdDate | LastName | FirstName | Title | Phone | Request |
---|---|---|---|---|---|---|---|
LE160301001 | 001 | 160301 | Jones | Charles | Diretor técnico executivo | #INVALID# | Registro |
LE160301002 | 002 | 160301 | Lyons | Edward | #AUSENTE# | 415-012-3456 | Download de artigo |
LE160301003 | 003 | 160301 | Martin | Mary | CEO | #INVALID# | Excluir conta |
LE160301004 | 004 | 160301 | Smith | Talia | Engenheiro | 510-123-4567 | Avaliaçã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 captura | Descrição | Referência de substituição |
---|---|---|
({lower}) | Uma única letra minúscula | $1 |
({upper}) | Uma única letra maiúscula | $2 |