我在两列上创建了一个外部表分区。这两个列是“国家”和“状态”,它们存储为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仅包含前两列的数据。我要去哪里错了?
答案 0 :(得分:0)
Impala不会自动从较大的类型转换为较小的类型。.插入之前,您必须CAST()
到VARCHAR(64)
以避免在Impala中出现此类异常。
partition (country = cast('US' as VARCHAR(64)), state = cast('CA' as VARCHAR(64)))
或者在表DDL中使用STRING
数据类型。