Hive:将字符串转换为整数

57

我正在寻找一种内置的UDF,用于将我的Hive表中字符串列的值转换为整数,以便在使用SELECT和ORDER BY进行排序时使用。我在语言手册中搜索了一下,但没有用。欢迎提出任何其他建议。

3个回答

132

只是好奇,这会为每个可能的字符串(包括非ASCII字符,例如:外语单词或短语)返回一个唯一的整数吗? - Ward W
3
如果字符串是非数字或太大/太小以适应“int”数据类型,它将返回“NULL”。 - mangusta

7
如果值在-2147483648和2147483647之间,使用(cast(string_filed as int));否则,使用(cast(string_filed as bigint))。
    hive> select cast('2147483647' as int);
    OK
    2147483647
    
    hive> select cast('2147483648' as int);
    OK
    NULL
    
    hive> select cast('2147483648' as bigint);
    OK
    2147483648

-2

如果将其视为BIGINT,则会显示数字,否则将返回NULL


1
你能解释一下你的答案吗? - party-ring

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接