由于精度损失,无法将数据插入分区表

时间:2018-07-19 02:15:56

标签: hive hdfs impala hue

我在两列上创建了一个外部表分区。这两个列是“国家”和“状态”,它们存储为SEQUENCEFILE。

我现在正在尝试通过通过Hue编辑器运行的Impala中的以下命令将数据加载到表中-

load data inpath '/usr/temp/input.txt' 
into table partitioned_user
partition (country = 'US', state = 'CA');

我收到以下错误-

AnalysisException:分区键值可能会导致精度损失。对于分区列:国家/地区,需要将“ US”强制转换为“ VARCHAR(64)”

我在做什么错?我要插入的表具有列,并且所有列的类型均为VARCHAR(64)-first_name,last_name,country,state。

文件input.txt仅包含前两列的数据。我要去哪里错了?

1 个答案:

答案 0 :(得分:0)

Impala不会自动从较大的类型转换为较小的类型。.插入之前,您必须CAST()VARCHAR(64)以避免在Impala中出现此类异常。

partition (country = cast('US' as VARCHAR(64)), state = cast('CA' as VARCHAR(64)))

或者在表DDL中使用STRING数据类型。