Sumário

Search

  1. Prefácio
  2. Introdução às Transformações
  3. Portas de Transformação
  4. Caches de Transformação
  5. Transformação de Validador de Endereço
  6. Transformação de Agregador
  7. Transformação de Associação
  8. Transformação de Exceção de Registro Inválido
  9. Transformação de Conversor de Maiúsculas/Minúsculas
  10. Transformação de Classificador
  11. Transformação de Comparação
  12. Transformação de Consolidação
  13. Transformação de Mascaramento de Dados
  14. Transformação do Processador de Dados
  15. Transformação de Decisão
  16. Transformação de Exceção de Registro Duplicado
  17. Transformação de Expressão
  18. Transformação de Filtro
  19. Transformação Hierárquica para Relacional
  20. Transformação Java
  21. Referência da API da transformação Java
  22. Expressões Java
  23. Transformação de Associador
  24. Transformação de Gerador de Chaves
  25. Transformação de Rotulador
  26. Transformação de Pesquisa
  27. Caches de Pesquisa
  28. Cache de Pesquisa Dinâmica
  29. Transformação de Macro
  30. Transformação de Correspondência
  31. Transformações de Correspondência na Análise de Campos
  32. Transformações de Correspondência na Análise de Identidade
  33. Transformação Normalizador
  34. Transformação de Mesclagem
  35. Transformação de Analisador
  36. Transformação Python
  37. Transformação de Classificação
  38. Transformação de Leitura
  39. Transformação de Relacional para Hierárquica
  40. Transformação de Consumidor de Serviço da Web REST
  41. Transformação de Roteador
  42. Transformação de Gerador de Sequência
  43. Transformação de Ordenador
  44. Transformação SQL
  45. Transformação de Padronizador
  46. Transformação de União
  47. Transformação de Estratégia de Atualização
  48. Transformação de Consumidor de Serviço da Web
  49. Analisando Mensagens SOAP de Serviços da Web
  50. Gerando Mensagens SOAP de Serviços da Web
  51. Transformação de Média Ponderada
  52. Transformação de Janela
  53. Transformação de Gravação
  54. Apêndice A: Delimitadores de Transformação

Guia de Transformação do Developer

Guia de Transformação do Developer

Convertendo para exemplo de dados struct

Convertendo para exemplo de dados struct

Sua organização precisa converter um grande volume de dados do cliente em um arquivo simples em dados struct e gravá-los em um arquivo Avro. O arquivo de entrada contém detalhes do cliente, como nome, idade e números de telefone. Se o nome do cliente for nulo no arquivo de entrada, você não deseja incluir detalhes do cliente no arquivo de saída.
Você pode desenvolver um mapeamento com uma transformação Java para definir a funcionalidade de transformação. No ambiente do Hadoop, execute o mapeamento no mecanismo Spark para transformar os dados e gravar os dados struct em um arquivo Avro.
Crie um mapeamento e configure as seguintes transformações:
  • Transformação de Leitura que lê informações do cliente de uma origem de arquivo simples
  • Transformação Java como uma transformação ativa que converte dados planos em dados struct e remove dados inconsistentes
  • Transformação de Gravação que grava os dados struct em um arquivo Avro
A imagem a seguir mostra o mapeamento com uma transformação de Leitura, uma transformação Java e uma transformação de Gravação.
O mapeamento m_JavaTx_StructConversion contém uma transformação de Leitura que representa a origem de arquivo simples Customer_Flat. O mapeamento contém uma transformação Java que converte dados planos em dados struct e uma transformação de Gravação que representa o alvo Avro Customer_Avro.
Na guia da biblioteca de definição de tipo do editor de mapeamento, crie uma definição de tipo de dados complex de Cliente. A definição de tipo de dados complex representa o esquema dos dados struct. Renomeie a biblioteca de definição de tipo para CustomerInfo. Adicione os seguintes elementos à definição do tipo de dados complex:
  • nome do tipo de string
  • idade do tipo integer
  • telefones do tipo array com elementos de string
A imagem a seguir mostra a definição de tipo de dados complex na biblioteca de definição de tipos:
A biblioteca de definições de tipos CustomerInfo contém a definição de tipo de dados complex Cliente com o nome, a idade e os telefones dos elementos.
Na transformação Java, inclua uma porta de saída struct e especifique a configuração de tipo da porta para referenciar a definição de tipo de dados complex que você criou. A transformação Java gera uma classe Cliente com setters e getters para ler e definir os campos de membros. A classe contém os seguintes campos de membros:
  • _name
  • _age
  • _phones
A imagem a seguir mostra a classe criada para a porta struct na guia
Código Completo
da exibição
Java
:
A guia Código Completo da exibição Java na guia Propriedades da transformação Java mostra a classe externa CustomerInfo e a classe interna Customer com getters e setters para os campos de membros. Os campos de membros _name, _age e _phones são de um tipo de dados Java.
O tipo de dados Java para a porta de struct usa o nome da biblioteca de definição de tipos e a definição de tipo de dados complex. A imagem a seguir mostra o nome do tipo de dados Java CustomerInfo.Customer para o campo cust no código gerado:
A guia Código Completo da exibição Java mostra o código gerado pela transformação Java. O código mostra o campo cust criado para a porta struct. O campo é do tipo de dados Java CustomerInfo.Customer.
Na exibição
Java
da transformação Java, importe quaisquer pacotes Java de terceiros, incorporados ou personalizados que a transformação requeira. Escreva e compile o código Java para converter os dados planos em dados struct e para remover a linha do cliente, se o nome do cliente for nulo.
A imagem a seguir mostra o código na guia
Na Entrada
:
 A guia Na Entrada na exibição Java mostra o código que define a funcionalidade de transformação.
Valide o mapeamento e execute o mapeamento no mecanismo Spark para gravar os dados transformados na saída do arquivo Avro.