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

Unable to insert data into partitioned table due to precision loss

我在两列上创建了一个外部 table 分区。这两列是 'country' 和 'state' 存储为 SEQUENCEFILE。

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

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

我收到以下错误 -

AnalysisException:分区键值可能会导致精度丢失。需要将“'US'”转换为 'VARCHAR(64)' 分区列:country

我做错了什么?我要插入的 table 包含诸如此类的列,并且所有列都是 VARCHAR(64) - first_name、last_name、国家、州。

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

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

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

或者使用 table DDL 中的 STRING 数据类型。