
# Loader算子数据处理规则
在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值，不做转换处理。  - 配置输入字段列数，大于原始数据实际包含的字段列数，全部数据成为脏数据。  - 数据类型转换失败，当前行成为脏数据。                                                                                                                                                                                                                                                                                         |
| 表输出       | - 传入数据为NULL值，不做转换处理。  - 配置输入字段列数，大于原始数据实际包含的字段列数，全部数据成为脏数据。  - 数据类型转换失败，当前行成为脏数据。                                                                                                                                                                                                                                                                                         |
| HBase输出   | - 原始数据包含NULL值，如果"NULL值处理方式"设置为"true"，将转换为空字符串并保存。如果"NULL值处理方式"设置为"false"，不保存数据。  - 配置输入字段列数，大于原始数据实际包含的字段列数，全部数据成为脏数据。  - 数据类型转换失败，当前行成为脏数据。                                                                                                                                                                                                                              |
| Hive输出    | - 如果指定了一个或多个列为分区列，则在"到"页面上，会显示"分割程序"属性，该属性表示使用多少个处理器去对分区数据进行处理。  - 如果没有指定任何列为分区列，则表示不需要对输入数据进行分区处理，"分割程序"属性默认隐藏。  - 配置输入字段列数，大于原始数据实际包含的字段列数，全部数据成为脏数据。  - 数据类型转换失败，当前行成为脏数据。                                                                                           |
   
