由于精度损失,无法将数据插入分区 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
数据类型。
我在两列上创建了一个外部 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
数据类型。