Transformação Extract

Extrai um subconjunto de dados de uma coluna e o insere em uma coluna nova, com base em uma string ou um padrão especificado. A coluna de origem não é modificada.

Dica: use a transformação extract se precisar reter a coluna de origem. Caso contrário, você pode usar a transformação split. Consulte Transformação Split.

Uso básico

extract col: text on: 'honda' limit: 10

Saída: extrai o valor honda do text da coluna fonte até 10 vezes e insere em uma coluna nova. O text da coluna fonte não é modificado.

Parâmetros

extract col:column_ref [quote:'quoted_string'] [ignoreCase:true|false] [limit:max_count] [after:start_point | from: start_point] [before:end_point | to:end_point] [on:'exact_match'] [at:(start_index,end_index)]

OBSERVAÇÃO: pelo menos um dos parâmetros a seguir precisa ser incluído para especificar o padrão a extrair: after, at, before, from, on, to.

ParâmetroObrigatório?Transform BuilderTipo de dadosDescrição
colSColunastringNome da coluna de origem
quoteNIgnorar as correspondências entrestringEspecifica um objeto entre aspas que é omitido da correspondência de padrões
ignoreCaseNIgnorar diferença entre maiúsculas e minúsculasbooleanoSe for true, a correspondência é indiferente a maiúsculas.
limitNNúmero de correspondênciasinteiro (positivo)Identifica o número de extrações que podem ser executadas a partir de um único valor. O padrão é 1.

Parâmetros correspondentes:

ParâmetroObrigatório?Transform BuilderTipo de dadosDescrição
afterN

No padrão

Entre dois padrões

stringPadrão ou literal de string que precede o padrão a corresponder
atNEntre duas posiçõesmatrizConjunto de dois números inteiros que identifica os índices dos caracteres inicial e final de correspondência
beforeN

No padrão

Entre dois padrões

stringPadrão ou literal de string que aparece após o padrão a corresponder
fromNEntre dois padrõesstringPadrão ou literal de string que identifica o início do padrão a corresponder
onNNo padrãostringPadrão ou literal de string que identifica o padrão a corresponder
toNEntre dois padrõesstringPadrão ou literal de string que identifica o final do padrão a corresponder

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

col

Identifica a coluna na qual aplicar a transformação. Você pode especificar apenas uma coluna.

extract col: MyCol on: 'MyString'

Saída: extrai o valor My String na coluna nova se estiver presente em MyCol. Caso contrário, o novo valor da coluna ficará em branco.

Observações sobre o uso:

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

after

extract col: MyCol after: 'Important:'

Saída: extrai o valor em MyCol que aparece após a string Important:. Se o valor after não aparecer na coluna, o valor de saída ficará em branco.

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 dado
NãoString ou padrão

at

extract col: MyCol at: 2,6

Saída: extrai o conteúdo de MyCol, que começa no segundo caractere da coluna e vai até ao sexto.

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

As entradas dos parâmetros sã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 do que o comprimento do valor, o padrão será definido para o final do valor, e uma correspondência será feita.

Observações sobre o uso:

Obrigatório?Tipo de dado
NãoMatriz de dois números inteiros (X,Y)

O parâmetro at não pode ser combinado com nenhum destes: on, after, before, from, to e quote. Consulte Correspondência de posição da cláusula de padrão.

before

extract col: MyCol before: '|'

Saída: extrai os conteúdos de MyCol que ocorrem antes da barra vertical (|). Se o valor before não aparecer na coluna, o valor de saída ficará em branco.

Um identificador de padrão que ocorre após o valor ou o padrão a corresponder. Define o padrão usando literais de string, expressões regulares ou padrões do Cloud Dataprep.

Observações sobre o uso:

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

from

extract col: MyCol from: 'go:'

Saída: extrai conteúdos de MyCol que ocorrem depois de go:, incluindo go:. Se o valor from não aparecer na coluna, o valor de saída ficará em branco.

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.

Observações sobre o uso:

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

on

extract col: MyCol on: `###ERROR`

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

Dica: insira o caractere Unicode equivalente ao valor do parâmetro usando 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 dado
Não

String (literal, expressão regular ou padrão do Cloud Dataprep)

to

extract col:MyCol from:'note:' to: `{end}`

Saída: extrai da coluna MyCol todos os valores que começam com note: até o final do valor.

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.

Observações sobre o uso:

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

quote

extract col: MyCol quote: 'First' after: `{start}%?`

Saída: extrai cada valor de célula da coluna MyCol, começando no segundo caractere da célula, desde que a string First não apareça nela.

Pode ser usado para especificar uma string como um único objeto entre aspas. Esse valor do parâmetro pode ser um ou mais caracteres.

Observações sobre o uso:

Obrigatório?Tipo de dado
NãoString
  • O valor do parâmetro é o objeto entre aspas.
  • O valor quote pode aparecer em qualquer lugar no valor da coluna. Ele não está limitado pelas restrições de quaisquer outros parâmetros.

ignoreCase

extract col: MyCol on: 'My String' ignoreCase: true

Saída: extrai os seguintes valores se aparecerem na coluna MyCol: My String, my string, My string etc.

Indica se é necessário que a correspondência diferencie maiúsculas e minúsculas ou não.

  • Defina como true para ignorar a correspondência com maiúsculas e minúsculas.
  • (Padrão) Defina como false para fazer a correspondência diferenciando maiúsculas e minúsculas.

Observações sobre o uso:

Obrigatório?Tipo de dado
NãoBooleano

limit

extract col: MyCol on: 'z' limit: 3

Saída: extrai cada instância da letra z na coluna MyCol em uma coluna separada, gerando até três colunas novas.

O parâmetro limit define o número máximo de vezes que um padrão pode ser correspondido dentro de uma coluna.

OBSERVAÇÃO: o parâmetro limit não pode ser usado com os seguintes parâmetros: at, positions ou delimiters.

Um conjunto de colunas novas é gerado, conforme definido pelo parâmetro limit. Cada instância correspondida preenche uma coluna separada até que não haja mais correspondências ou todas as colunas novas geradas por limit sejam preenchidas.

Observações sobre o uso:

Obrigatório?Tipo de dado
NãoInteiro (positivo)
  • Define o número máximo de colunas que podem ser criadas pela transformação extract.
  • Se não for especificado, uma coluna é criada, exatamente.

Exemplos

Exemplo - Extrair primeiro nome

Fonte:

Name
Sr. Mike Smith
Dra. Jane Jones
Miss Meg Moon

Transformação:

A transformação a seguir extrai a segunda palavra do conjunto de dados de amostra acima. O conteúdo é extraído após o primeiro espaço e antes do espaço seguinte.

Dica: se quiser distribuir a saudação, o nome e o sobrenome ao mesmo tempo, use a transformação split. Consulte Transformação Split.

extract col:Name after: ' ' before: ' '

Resultados:

NameName2
Sr. Mike SmithMike
Dra. Jane JonesJane
Miss Meg MoonMeg

Exemplo - Extrair níveis de registro

Fonte:

Abaixo está a representação de mensagens brutas de registro extraídas de um aplicativo. Você precisa extrair o nível de erro para cada mensagem: INFO, WARNING ou ERROR.

app_log
20115-10-30T15:43:37:874Z INFO Client environment:started
20115-10-30T15:43:38:009Z INFO Client environment:launched Chromium component
20115-10-30T15:43:38:512Z ERROR Client environment:failed to connect to local DB
20115-10-30T15:43:38:515Z INFO Client environment:launched application

Transformação:

Na transformação acima, o texto de interesse aparece após o carimbo de data/hora e antes da mensagem.

  • Na cláusula after, é necessário um padrão. Nesse caso, a regra de seleção identifica o último segmento do carimbo de data/hora, com os sinais de três cerquilhas (#) identificando três dígitos de valor desconhecido. O valor "Z" oferece à regra de seleção um pouco mais de especificidade. Observe os acentos graves para indicar a regra de seleção.
  • Na cláusula before, você pode usar uma string de caracteres de espaço simples, já que é consistente em todos os dados.

extract col:app_log after: `###Z ` before: ' '

Resultados:

app_logapp_log_2
20115-10-30T15:43:37:874Z INFO Client environment:startedINFO
20115-10-30T15:43:38:009Z INFO Client environment:launched Chromium componentINFO
20115-10-30T15:43:38:512Z ERROR Client environment:failed to connect to local DBERRO
20115-10-30T15:43:38:515Z INFO Client environment:launched applicationINFO

Exemplo - Limpar os dados de contatos 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 nova coluna que contenha 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 executivo (CTO)415-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 card de transformaçã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 de solicitação: na coluna "Request", observe que 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": talvez você tenha observado alguns problemas com os valores na 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: talvez você tenha percebido que a coluna do identificador principal (LeadId) contém algumas informações incorporadas: um valor de data e um identificador para a 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 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 (CTO)#INVALID#Registro
LE160301002002160301LyonsEdward#AUSENTE#415-012-3456Download de artigo
LE160301003003160301MartinMaryCEO#INVALID#Excluir conta
LE160301004004160301SmithTaliaEngenheiro510-123-4567Avaliação gratuita

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.