目录

Search

  1. 前言
  2. 转换简介
  3. 转换端口
  4. 转换缓存
  5. 地址验证器转换
  6. 汇总器转换
  7. 关联转换
  8. 离散记录异常转换
  9. 大小写转换器转换
  10. 分类器转换
  11. 比较转换
  12. 合并转换
  13. 数据屏蔽转换
  14. 数据处理器转换
  15. 判定转换
  16. 重复记录异常转换
  17. 表达式转换
  18. 筛选器转换
  19. 层次结构到关系转换
  20. Java 转换
  21. Java 转换 API 引用
  22. Java 表达式
  23. 联接器转换
  24. 键生成器转换
  25. 标签创建器转换
  26. 查找转换
  27. 查找缓存
  28. 动态查找缓存
  29. 匹配转换
  30. 字段分析中的匹配转换
  31. 标识分析中的匹配转换
  32. 规范器转换
  33. 合并转换
  34. 解析器转换
  35. Python 转换
  36. 等级转换
  37. 读取转换
  38. 关系到层次结构转换
  39. REST Web 服务使用者转换
  40. 路由器转换
  41. 序列生成器转换
  42. 排序器转换
  43. SQL 转换
  44. 标准创建器转换
  45. 联合转换
  46. 更新策略转换
  47. Web 服务使用者转换
  48. 解析 Web 服务 SOAP 消息
  49. 生成 Web 服务 SOAP 消息
  50. 加权平均值转换
  51. 窗口转换
  52. 写入转换
  53. 转换分隔符

Developer 转换指南

Developer 转换指南

转换为结构数据示例

转换为结构数据示例

您的组织需要将平面文件中的大量客户数据转换为结构数据,并将其写入 Avro 文件。输入文件包含诸如姓名、年龄和电话号码等客户详细信息。如果输入文件中的客户姓名为空,则表示您不想将客户详细信息添加到输出文件中。
可以使用 Java 转换开发一个映射,以定义转换功能。在 Hadoop 环境下,在 Spark 引擎上运行映射,以转换数据并将结构数据写入 Avro 文件。
创建映射并配置以下转换:
  • 读取转换,从平面文件源读取客户信息
  • Java 转换,作为活动转换,将平面数据转换为结构数据并删除不一致的数据
  • 写入转换,将结构数据写入 Avro 文件
下图显示了包含读取转换、Java 转换和写入转换的映射。
映射 m_JavaTx_StructConversion 包含一个表示平面文件源 Customer_Flat 的读取转换。映射中包含将平面数据转换为结构数据的 Java 转换,以及表示 Avro 目标 Customer_Avro 的写入转换。
在映射编辑器的“类型定义库”选项卡上,创建复杂的数据类型定义 Customer。复杂数据类型定义表示结构数据的架构。将类型定义库重命名为 CustomerInfo。将以下元素添加到复杂的数据类型定义:
  • 字符串类型的名称
  • 整数类型的年龄
  • 具有字符串元素的数组类型的电话
下图显示了类型定义库中的复杂数据类型定义:
类型定义库 CustomerInfo 中包含具有 name、age 和 phones 元素的复杂数据类型定义 Customer。
在 Java 转换中,添加一个结构输出端口并指定该端口的类型配置,以引用您创建的复杂数据类型定义。Java 转换生成具有 setter 和 getter 的 Customer 类,以读取和设置成员字段。该类包含以下成员字段:
  • _name
  • _age
  • _phones
下图显示了在
Java
视图的
完整代码
选项卡中为结构端口创建的类:
Java 转换“属性”选项卡上的 Java 视图的“完整代码”选项卡显示成员字段带有 getter 和 setter 的外部类 CustomerInfo 和内部类 Customer。成员字段 _name、_age 和 _phones 属于 Java 数据类型。
结构端口的 Java 数据类型使用类型定义库的名称和复杂数据类型定义。下图显示了生成代码中 cust 字段的 Java 数据类型名称 CustomerInfo.Customer:
Java 视图的“完整代码”选项卡显示 Java 转换生成的代码。代码显示为结构端口创建的 cust 字段。该字段属于 Java 数据类型 CustomerInfo.Customer。
在 Java 转换的
Java
视图中,导入转换需要的第三方、内置的或者自定义 Java 包。写入和编译 Java 代码,将平面数据转换为结构数据,在客户名称为空时删除客户行。
下图显示了
输入
选项卡中的代码:
 Java 视图的“输入”选项卡显示了定义转换功能的代码。
在 Spark 引擎上验证映射并运行映射,将转换后的数据写入 Avro 文件输出。