Índice

Search

  1. Prólogo
  2. Introducción a las transformaciones
  3. Puertos de transformación
  4. Memorias caché de transformaciones
  5. Transformación del validador de direcciones
  6. Transformación de agregación
  7. Transformación de asociación
  8. Transformación de excepción de registros incorrectos
  9. Transformación de conversión de mayúsculas y minúsculas
  10. Transformación de clasificador
  11. Transformación de comparación
  12. Transformación de consolidación
  13. Transformación de enmascaramiento de datos
  14. Transformación del Procesador de datos
  15. Transformación de decisión
  16. Transformación de excepción de registros duplicados
  17. Transformación de expresión
  18. Transformación de filtro
  19. Transformación de jerárquica a relacional
  20. Transformación de Java
  21. Referencia API de transformación de Java
  22. Expresiones de Java
  23. Transformación de incorporación
  24. Transformación de generador de claves
  25. Transformación de etiquetador
  26. Transformación de búsqueda
  27. Memorias caché de búsqueda
  28. Memoria caché de búsqueda dinámica
  29. Transformación de coincidencia
  30. Transformaciones de coincidencia en el análisis de campos
  31. Transformaciones de coincidencia en el análisis de identidad
  32. Transformación de normalizador
  33. Transformación de fusión
  34. Transformación de analizador
  35. Transformación de Python
  36. Transformación de rango
  37. Transformación de lectura
  38. Transformación de relacional a jerárquica
  39. Transformación de consumidor de servicio web REST
  40. Transformación de enrutador
  41. Transformación de generador de secuencia
  42. Transformación de ordenación
  43. Transformación de SQL
  44. Transformación de estandarizador
  45. Transformación de unión
  46. Transformación de estrategia de actualización
  47. Transformación de consumidor de servicio web
  48. Análisis de mensajes SOAP del servicio web
  49. Generación de mensajes SOAP del servicio web
  50. Transformación de media ponderada
  51. Transformación de ventana
  52. Transformación de escritura
  53. Delimitadores de transformación

Guía de transformaciones de Developer

Guía de transformaciones de Developer

Ejemplo de conversión a datos de tipo struct

Ejemplo de conversión a datos de tipo struct

La organización necesita convertir un volumen extenso de datos de clientes de un archivo sin formato en datos de tipo struct, así como escribirlos en un archivo de Avro. El archivo de entrada contiene detalles de los clientes, como el nombre, la edad y los números de teléfono. Si el nombre del cliente es nulo en el archivo de entrada, no quiere que los detalles de los clientes se añadan al archivo de salida.
Puede desarrollar una asignación con una transformación Java para definir la funcionalidad de la transformación. En el entorno Hadoop, ejecute la asignación en el motor de Spark para transformar los datos y escribir los datos de tipo struct en un archivo de Avro.
Cree una asignación y configure las siguientes transformaciones:
  • Una transformación de lectura que lea la información de los clientes desde un origen de archivo sin formato
  • Una transformación Java que actúa como transformación activa que convierte los datos sin formato en datos de tipo struct y elimina los datos incoherentes
  • Una transformación de escritura que escribe los datos de tipo struct en un archivo de Avro
En la siguiente imagen se muestra la asignación con una transformación de lectura, una transformación Java y una transformación de escritura.
La asignación m_JavaTx_StructConversion contiene una transformación de lectura que representa el origen de archivo sin formato Customer_Flat. La asignación contiene una transformación Java que convierte los datos sin formato en datos de tipo struct y una transformación de escritura que representa el destino de Avro Customer_Avro.
En la ficha de la biblioteca de definiciones de tipos del editor de la asignación, cree una definición de tipo de datos complejo Customer. La definición de tipo de datos complejo representa el esquema de los datos de tipo struct. Cambie el nombre de la biblioteca de definiciones de tipos a CustomerInfo. Añada los siguientes elementos a la definición de tipo de datos complejo:
  • Elemento name de tipo string
  • Elemento age de tipo integer
  • Elemento phones de tipo array con elementos de tipo string
En la siguiente imagen se muestra la definición de tipo de datos complejo en la biblioteca de definiciones de tipos:
La biblioteca de definiciones de tipos CustomerInfo contiene la definición de tipo de datos complejo Customer con los elementos name, age y phones.
En la transformación Java, añada un puerto de salida de estructura y especifique la configuración de tipo del puerto para hacer referencia a la definición de tipo de datos complejo que ha creado. La transformación Java genera una clase Customer con establecedores y captadores para leer y establecer los campos miembro. La clase contiene los siguientes campos miembro:
  • _name
  • _age
  • _phones
En la siguiente imagen se muestra la clase creada para el puerto de estructura en la ficha
Código completo
de la vista
Java
:
La ficha Código completo de la vista Java en la ficha Propiedades de la transformación Java muestra la clase externa CustomerInfo y la clase interna Customer con captadores y establecedores para los campos miembro. Los campos miembro _name, _age y _phones son un tipo de datos de Java.
El tipo de datos de Java del puerto de estructura usa el nombre de la biblioteca de definiciones de tipos y la definición de tipos de datos complejos. En la siguiente imagen se muestra el nombre del tipo de datos de Java CustomerInfo.Customer del campo cust en el código generado:
La ficha Código completo de la vista Java muestra el código generado por la transformación Java. El código muestra el campo cust que se crea para el puerto de estructura. El campo es del tipo de datos de Java CustomerInfo.Customer.
En la vista
Java
de la transformación Java, importe los paquetes Java de terceros, integrados o personalizados que la transformación requiera. Escriba y compile el código Java para convertir los datos sin formato en datos de tipo struct y para quitar la fila de cliente si el nombre de cliente es nulo.
En la siguiente imagen se muestra el código en la ficha
En entrada
:
 La ficha En entrada de la vista Java muestra el código que define la funcionalidad de la transformación.
Valide la asignación y ejecútela en el motor de Spark para escribir los datos transformados en la salida del archivo de Avro.