如何测试蜂巢中的数字条件?

Posted

技术标签:

【中文标题】如何测试蜂巢中的数字条件?【英文标题】:How to test isnumeric condition in hive? 【发布时间】:2016-04-12 05:11:17 【问题描述】:

我有数据 ID 列,它包含数字和字母,我只想要数字 ID 列表,是否有相同的内置条件,我想稍后转换数据。 我在 SQL 中知道为

 'CASE WHEN ISNUMERIC([id])=1 THEN CAST([id] as int) ELSE 0 END [ID]' 

hive 中的查询是什么? 请帮忙。

【问题讨论】:

您的查询到底是什么? 我有 varchar 数据类型的数据,我想将其转换(转换)为 int 类型,前提是它包含数字字符.. 您使用的是哪个 Hive 版本? CDH 5.4 ,在那个蜂巢有 1.1.0 版本 这个火花有什么关系? 【参考方案1】:

试试这个方法

select CAST([id] as int) as id from tablename where ISNUMERIC([id])=1

【讨论】:

对不起,现在 hive isumeric 函数不存在........我遇到了这个函数的问题.. 这个答案完全不正确,因为 isumeric 不是 Hive 函数。 错误答案。 OP 要求提供蜂巢示例。在 hive 中 isnumeric 不可用。 Hive 中没有isnumericfunction,但类似的功能可以通过select count(*) from <tableName> where cast(<colName> as double) is not NULL 之类的查询或select count(*) from <tableName> where <colName> rlike '[^0-9]' ; 之类的正则表达式通过两种方式实现

以上是关于如何测试蜂巢中的数字条件?的主要内容,如果未能解决你的问题,请参考以下文章

如何为蜂巢中的点后的位数建立分布表?

如何将地图转换为蜂巢中的列?

如何减去蜂巢中的项目

颤振:如何将蜂巢监视绑定到 getx 中的 RxList 对象

如何对蜂巢中的每一组进行采样?

如何在颤动中删除蜂巢中的所有框?