【问题标题】:Hive: Convert String to IntegerHive:将字符串转换为整数
【发布时间】:2012-09-03 00:40:33
【问题描述】:

我正在寻找一个内置 UDF 来将我的配置单元表中的字符串列的值转换为整数,以便使用 SELECT 和 ORDER BY 进行排序。我在语言手册中搜索过,但没有用。也欢迎任何其他建议。

【问题讨论】:

    标签: string hive user-defined-functions hiveql


    【解决方案1】:

    cast(str_column as int)

    发件人:Language manual UDFs - type conversion functions

    【讨论】:

    • 只是好奇,但这是否会为每个可能的字符串返回一个唯一的 int,包括非 ascii 字符串(例如:外来词或短语)?
    • @wardw123 如果字符串不是数字或太大/太小而无法容纳int 数据类型,它将返回NULL
    【解决方案2】:

    它会返回 NULL 但如果取为 BIGINT 会显示数字

    【讨论】:

    • 你能解释一下你的答案吗?
    【解决方案3】:

    如果该值介于 –2147483648 和 2147483647 之间,则 cast(string_filed as int) 将起作用。 else 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-21
      • 2010-12-31
      相关资源
      最近更新 更多