Hive数组的字符串转换为int数组

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hive数组的字符串转换为int数组相关的知识,希望对你有一定的参考价值。

在Hive中,我有一个表作为字符串数据类型的列,它包含一组数字说标记。所以我想应用一些算术运算,如加法,所以我使用split命令,它返回数组。 Bt我不能对数组应用加法我认为我需要转换为数组来应用任何算术运算。我用了命令

select sum(a) from (select split(marks, ':') as a from tbl) b;

我试图将它转换为数组也不会产生一些错误。我尝试了以下命令

select sum(a) from (select cast(split(marks, ':') as a array<int>) from table) b;
select sum(a) from (select cast(b) as array<int> from (select split(marks, ':') as b from tbl) c) d;

请建议我解决这个问题..以及如何将数组转换为数组

答案

你可以用这个:

select sum(cast(a as int)) from TableName;
另一答案

你可以这样做,希望这会有所帮助

Select 
 sum(a), 
 sum(b), 
 sum(c), 
 sum(d)
From
(Select
  CAST(Split(marks,':')[0] AS bigint) AS a, 
  CAST(Split(marks,':')[1] AS bigint) AS b,
  CAST(Split(marks,':')[2] AS bigint) AS c, 
  CAST(Split(marks,':')[3] AS bigint) AS d
From
Table) split_data
Group by <some column>

以上是关于Hive数组的字符串转换为int数组的主要内容,如果未能解决你的问题,请参考以下文章

Hive - 如何将数组转换为字符串?

我们如何在 hive 中将字符串转换为数组?

如何将数组<string>转换为hive中的字符串

从 Int 数组转换为字符串数组

如何在java中将字符串数组转换为int数组[重复]

如何将字符串转换为hive中的struct数组并进行爆炸?