在Hive中如何做到这一点?

时间:2018-12-05 16:17:56

标签: hive

我在蜂巢中有两个问题。 1.我有类似234336899的数据。如果最后3位数字是899> 500,则将打印999,否则,如果899 <500,则应打印000。 你能告诉我如何在蜂巢中做吗?

  1. 我还有另一种情况,例如输入。

0 1 2
3 1 2
0 1 4
3 1 4

我要打印输出如下。

0 1
3 1
1 2
1 4

如何在Hive中做到这一点?

感谢adv,

1 个答案:

答案 0 :(得分:0)

您的第一个问题可以如下解决:

create table sample (col1 bigint);

insert into table sample values(234336899),(234336399);

select 
col1,
case when substr(col1,-3) > 500 then '999'
     when substr(col1,-3) < 500 then '000'
end as case_col1
from sample;

此处, substr 配置单元功能已用于从col1中获取最后3位数字。