带有 --map-column-hive 标记的 Sqoop 命令中的 char、varchar、decimal 问题

Issue with char, varchar, decimal in Sqoop command with --map-column-hive tag

我正在使用 Sqoop 将数据从 teradata 导入到 hive。

我在 sqoop 导入命令中添加了 --map-column-hive

--map-column-hive col1=int,col2=float,col3=decimal,col4=timestamp,col5=varchar

我遇到异常:

FAILED: ParseException line 1:234 mismatched input ',' expecting ( near 'varchar' in primitive type specification

然后我尝试了:

--map-column-hive col1=int,col2=float,col3=decimal,col4=timestamp,col5=varchar(255)

我得到了:

bash: syntax error near unexpected token `('

这里的charvarchardecimal怎么处理?

检查源代码并跟踪与此相关的问题后。我发现:

对于 --map-column-hive 标签

  1. 没有精度和小数位数

    键=值

    例如col1=int

  2. 精确

    key = "value(precision)"(可以单引号

    例如col2="varchar(255)"

  3. 有比例

    此问题存在错误,已在 Sqoop 1.4.7 中修复

    修复并不简单。 例如,对于 col3=decimal(1,1) 列,需要编写 col3=decimal(1%2C1)

    查看SQOOP-2103 issue了解更多详情