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

Hive输入

概述

“Hive输入”算子,将Hive表的指定列转换成同等数量的输入字段。

输入与输出

  • 输入:Hive表列
  • 输出:字段

参数说明

表1 算子参数说明

参数

含义

类型

是否必填

默认值

Hive数据库

Hive的数据库名称。

String

default

Hive表名

配置Hive表名。

仅支持一个Hive表。

String

分区过滤器

配置分区过滤器可以导出指定分区数据,默认为空,导出整个表数据。

例如导出分区字段locale的值为“CN”“US”的表数据,输入如下:

locale = "CN" or locale = "US"

String

-

Hive输入字段

配置Hive输入信息:

  • 列名:配置Hive列名。
  • 字段名:配置输入字段名。
  • 类型:配置字段类型。
  • 长度:配置字段长度,字段值实际长度太长则按配置的长度截取,“类型”“CHAR”时实际长度不足则空格补齐,“类型”“VARCHAR”时实际长度不足则不补齐。

map

-

数据处理规则

  • 当配置Hive表名不存在时,作业提交失败。
  • 当配置的列名与Hive表列名不匹配时,读取不到数据,导入数据条数会为0。
  • 当字段的值与实际的类型不匹配时,该行数据会成为脏数据。

样例

以Hive导出到sqlserver2014数据库为例。

在sqlserver2014上创建一张空表“test_1”用于存储Hive数据。执行以下语句:

create table test_1 (id int, name text, value text);

配置“Hive输入”算子,生成三个字段A、B和C:

设置了数据连接器后,单击自动识别,系统将自动读取数据库中的字段,可根据需要选择添加,然后根据业务场景手动进行完善或者修正即可,无需逐一手动添加。

此操作会覆盖表格内已有数据。

通过“表输出”算子,将A、B和C输出到“test_1”表中:

select * from test_1;