Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hive &引用;输入字符串的NumberFormatException“;蜂箱_Hive_Hiveql - Fatal编程技术网

Hive &引用;输入字符串的NumberFormatException“;蜂箱

Hive &引用;输入字符串的NumberFormatException“;蜂箱,hive,hiveql,Hive,Hiveql,我正在尝试运行一个类似于下面代码的配置单元SQL insert into table FactUpdated select colm_name from ( select colmn_name, floor(rand()*116219) rand_key from FactTable limit 2942699191) line join DimTable on FactTable.rand_key = DimTable.id; 运行此查询时,我发现失败

我正在尝试运行一个类似于下面代码的配置单元SQL

insert into table FactUpdated
  select colm_name  
  from  
  (
  select colmn_name, floor(rand()*116219) rand_key 
  from FactTable limit 2942699191) line
  join  DimTable
  on FactTable.rand_key = DimTable.id;
运行此查询时,我发现失败:输入字符串的NumberFormatException:“2942699191”

我觉得hive中的limit子句在它可以接受的值方面有一些限制

有人能帮我解答这个问题吗


PS:Hive版本1.2.1.2.4应为整数

2^31-1有效

select  1
limit   2147483647
;
2^31超出范围,返回与您得到的相同错误

select  1
limit   2147483648
;

公共类LimitOperator extends运算符实现可序列化的{private static final long serialVersionUID=1L;
受保护的瞬态整数限制。。。

yes这很好,有没有办法更改limit的数据类型或使用任何重载类?limit在源代码中定义为
int
(请参阅更新的答案)。在任何情况下,您的请求似乎没有多大意义。您的动机是什么?我需要一个包含10B记录的表,并且我必须从脚本生成7B记录,其余的需要从同一个表复制回来。在这种情况下,我需要复制2.94B。这就是我试图实现的。包含10B记录的表=(7B来自脚本+3B(复制自先前生成的7B))-这是3B记录的双重性。您试图从10B记录中检索特定的3B记录?您怎么会认为限制会返回这些记录,而不是7B记录的一部分或两者的混合?
public class LimitOperator extends Operator<LimitDesc> implements Serializable {   private static final long serialVersionUID = 1L;

  protected transient int limit;      ...