代码之家  ›  专栏  ›  技术社区  ›  VKarthik

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

  •  0
  • VKarthik  · 技术社区  · 6 年前

    我已经在两列上创建了一个外部表分区。这两列是存储为sequencefile的“country”和“state”。

    我现在尝试使用impala run via hue editor中的以下命令将数据加载到表中-

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

    我得到以下错误-

    分析异常:分区键值可能导致精度损失。需要将分区列的“us”强制转换为“varchar(64)”:country

    我做错什么了?我要插入的表中有一些列,比如和所有列的类型都是VARCHAR(64)-first_name,last_name,country,state。

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

    1 回复  |  直到 6 年前
        1
  •  0
  •   leftjoin    6 年前

    impala不会自动从较大的类型转换为较小的类型。你必须 CAST() 给一个 VARCHAR(64) 在插入之前避免在impala中出现这种异常。

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

    或使用 STRING 改为表ddl中的数据类型。