更新时间:2022-12-14 GMT+08:00

算子数据处理规则

在Loader导入或导出数据的任务中,每个算子对于原始数据中NULL值、空字符串定义了不同的处理规则;在算子中无法正确处理的数据,将成为脏数据,无法导入或导出。

在转换步骤中,算子数据处理规则请参见下表。
表1 数据处理规则一览表

转换步骤

规则描述

CSV文件输入

  • 分隔符在原始数据中连续出现两次,将生成空字符串字段。
  • 配置输入字段列数,大于原始数据实际包含的字段列数,全部数据成为脏数据。
  • 遇到类型转换错误,当前数据保存为脏数据。

固定宽度文件输入

  • 原始数据包含NULL值,不做转换处理。
  • 配置输入字段列数,大于原始数据实际包含的字段列数,全部数据成为脏数据。
  • 配置转换字段类型,与原始数据实际类型不同,全部数据成为脏数据。例如将字符串类型转换为数值类型。
  • 配置字段分割长度,大于原字段值的长度,则数据分割失败,当前行成为脏数据

表输入

  • 原始数据包含NULL值,不做转换处理。
  • 配置输入字段列数,大于原始数据实际包含的字段列数,全部数据成为脏数据。
  • 配置转换字段类型,与原始数据实际类型不同,全部数据成为脏数据。例如将字符串类型转换为数值类型。

HBase输入

  • 原始数据包含NULL值,不做转换处理。
  • 配置HBase表名错误,全部数据成为脏数据。
  • “主键”没有配置主键列,全部数据成为脏数据。
  • 配置输入字段列数,大于原始数据实际包含的字段列数,全部数据成为脏数据。
  • 配置转换字段类型,与原始数据实际类型不同,全部数据成为脏数据。例如将字符串类型转换为数值类型。

长整型时间转换

  • 原始数据包含NULL值,不做转换处理。
  • 配置输入字段列数,大于原始数据实际包含的字段列数,全部数据成为脏数据。
  • 遇到类型转换错误,当前数据保存为脏数据。

空值转换

  • 原始数据包含NULL值,转换为用户指定的值。
  • 配置输入字段列数,大于原始数据实际包含的字段列数,全部数据成为脏数据。

随机值转换

不涉及处理NULL值、空字符串,不生成脏数据。

增加常量字段

不涉及处理NULL值、空字符串,不生成脏数据。

拼接转换

  • 原始数据包含NULL值,将转换为空字符串。
  • 配置输入字段列数,大于原始数据实际包含的字段列数,全部数据成为脏数据。

分隔转换

  • 原始数据包含NULL值,当前行成为脏数据。
  • 配置分割后字段列数,大于原始数据实际可分割出来的字段列数,当前行成为脏数据。

取模转换

  • 原始数据包含NULL值,当前行成为脏数据。
  • 配置输入字段列数,大于原始数据实际包含的字段列数,全部数据成为脏数据。
  • 数据类型转换失败,当前行成为脏数据。

剪切字符串

  • 传入数据为NULL值,不做转换处理。
  • 配置输入字段列数,大于原始数据实际包含的字段列数,全部数据成为脏数据。
  • 字符截取的起点位置或终点位置,大于输入字段的长度时,当前行成为脏数据。

EL操作转换

  • 传入数据为NULL值,不做转换处理。
  • 输入一个或多个字段的值,输出计算结果。
  • 输入类型和算子不兼容时,当前行为脏数据。

字符串大小写转换

  • 传入数据为NULL值,不做转换处理。
  • 配置输入字段列数,大于原始数据实际包含的字段列数,全部数据成为脏数据。

字符串逆序转换

  • 传入数据为NULL值,不做转换处理。
  • 配置输入字段列数,大于原始数据实际包含的字段列数,全部数据成为脏数据。

字符串空格清除转换

  • 传入数据为NULL值,不做转换处理。
  • 配置输入字段列数,大于原始数据实际包含的字段列数,全部数据成为脏数据。

过滤行转换

  • 条件逻辑为“AND”,如果未添加过滤条件,全部数据成为脏数据;或者原始数据满足添加的全部过滤条件,当前行成为脏数据。
  • 条件逻辑为“OR”,如果未添加过滤条件,全部数据成为脏数据;或者原始数据满足任意添加的过滤条件,当前行成为脏数据。

文件输出

  • 传入数据为NULL值,不做转换处理。
  • 配置输入字段列数,大于原始数据实际包含的字段列数,全部数据成为脏数据。
  • 数据类型转换失败,当前行成为脏数据。

表输出

HBase输出

  • 原始数据包含NULL值,如果“NULL值处理方式”设置为“true”,将转换为空字符串并保存。如果“NULL值处理方式”设置为“false”,不保存数据。
  • 配置输入字段列数,大于原始数据实际包含的字段列数,全部数据成为脏数据。
  • 数据类型转换失败,当前行成为脏数据。

Hive输出

  • 如果指定了一个或多个列为分区列,则在“到”页面上,会显示“分割程序”属性,该属性表示使用多少个处理器去对分区数据进行处理。
  • 如果没有指定任何列为分区列,则表示不需要对输入数据进行分区处理,“分割程序”属性默认隐藏。
  • 配置输入字段列数,大于原始数据实际包含的字段列数,全部数据成为脏数据。
  • 数据类型转换失败,当前行成为脏数据。