精华内容
下载资源
问答
  • hive:字符串转int

    万次阅读 2019-11-04 19:46:31
    select start_time from os.os_cater_t_caf_info; select cast(start_time AS BIGINT) aa from os.os_canter_t_calof_info;

     

    select start_time from os.os_cater_t_caf_info;
    select cast(start_time AS BIGINT) aa from os.os_canter_t_calof_info;

     

    展开全文
  • HIVE 数据类型转换

    万次阅读 多人点赞 2017-01-11 14:40:09
    比如我们对两个不同数据类型的数字进行比较,假如一个数据类型是INT型,另一个 是SMALLINT类型,那么SMALLINT类型的数据将会被隐式转换地转换为INT类型,这个到底和Java中的一样;但是我们不能隐式地将一个 INT类型...

      在《Hive内置数据类型》文 章中,我们提到了Hive内置数据类型由基本数据类型和复杂数据类型组成。今天的话题是Hive数据类型之间的转换。同Java语言一样,Hive也包括 隐式转换(implicit conversions)和显式转换(explicitly conversions)。
      Hive在需要的时候将会对numeric类型的数据进行隐式转换。比如我们对两个不同数据类型的数字进行比较,假如一个数据类型是INT型,另一个 是SMALLINT类型,那么SMALLINT类型的数据将会被隐式转换地转换为INT类型,这个到底和Java中的一样;但是我们不能隐式地将一个 INT类型的数据转换成SMALLINT或TINYINT类型的数据,这将会返回错误,除非你使用了CAST操作。

      任何整数类型都可以隐式地转换成一个范围更大的类型。TINYINT,SMALLINT,INT,BIGINT,FLOAT和STRING都可以隐式 地转换成DOUBLE;是的你没看出,STRING也可以隐式地转换成DOUBLE!但是你要记住,BOOLEAN类型不能转换为其他任何数据类型!

      下标列出了Hive内置的数据类型之间是否可以进行隐式的转换操作:

     bltinyintsiintbigintfloatdoubledmstringvctsdateba
    boolean true false false false false false false false false false false false false
    tinyint false true true true true true true true true true false false false
    smallint false false true true true true true true true true false false false
    int false false false true true true true true true true false false false
    bigint false false false false true true true true true true false false false
    float false false false false false true true true true true false false false
    double false false false false false false true true true true false false false
    decimal false false false false false false false true true true false false false
    string false false false false false false true true true true false false false
    varchar false false false false false false true true true true false false false
    ts false false false false false false false false true true true false false
    date false false false false false false false false true true false true false
    binary false false false false false false false false false false false false true
      注:由于表格比较大,这里对一些比较长的字符串进行缩写,ts是timestamp的缩写,bl是boolean的缩写,sl是smallint的缩写,dm是decimal的缩写,vc是varchar的缩写,ba是binary的缩写。

      我们可以用CAST来显式的将一个类型的数据转换成另一个数据类型。如何使用?CAST的语法为cast(value AS TYPE)。举个例子:假如我们一个员工表employees,其中有name、salary等字段;salary是字符串类型的。有如下的查询:

    1 SELECT name, salary FROM employees
    2 WHERE cast(salary AS FLOAT) <</code> 100000.0;

      这样salary将会显示的转换成float。如果salary是不能转换成float,这时候cast将会返回NULL!
      对cast有一下几点需要说明的:
      (1)、如果将浮点型的数据转换成int类型的,内部操作是通过round()或者floor()函数来实现的,而不是通过cast实现!
      (2)、对于BINARY类型的数据,只能将BINARY类型的数据转换成STRING类型。如果你确信BINARY类型数据是一个数字类型(a number),这时候你可以利用嵌套的cast操作,比如a是一个BINARY,且它是一个数字类型,那么你可以用下面的查询:

    1 SELECT (cast(cast(a as string) as double)) from src;

    我们也可以将一个String类型的数据转换成BINARY类型。
      (3)、对于Date类型的数据,只能在Date、Timestamp以及String之间进行转换。下表将进行详细的说明:

    有效的转换 结果
    cast(date as date) 返回date类型
    cast(timestamp as date) timestamp中的年/月/日的值是依赖与当地的时区,结果返回date类型
    cast(string as date) 如果string是YYYY-MM-DD格式的,则相应的年/月/日的date类型的数据将会返回;但如果string不是YYYY-MM-DD格式的,结果则会返回NULL。
    cast(date as timestamp) 基于当地的时区,生成一个对应date的年/月/日的时间戳值
    cast(date as string) date所代表的年/月/日时间将会转换成YYYY-MM-DD的字符串。

    展开全文
  • hive类型转换

    2021-01-16 22:12:52
    (1)可以由小的类型转换为大的类型,比如从int到bigint,byte到intint, 到string 2)整形,float 和 string都可以转换为double 3)boolean类型不可以转换为任何类型(boolean为:true和false) 2)显式转换 使用...

    一、hive类型之间的转换
    1)隐式转换
    (1)可以由小的类型转换为大的类型,比如从int到bigint,byte到int,int, 到string
    2)整形,float 和 string都可以转换为double
    3)boolean类型不可以转换为任何类型(boolean为:true和false)
    在这里插入图片描述
    2)显式转换
    使用cast操作将数据类型进行转换
    比如 cast(‘1’ AS INT) 把字符串转换为整数1,如果cast转换为类型失败会返回 NULL(hive表中某个字段不存在时,也为NULL)。
    一些特殊类型的转换
    cast(string as date), "YY-MM-DD"类型的可以转换,其他为NULL,
    sql案例

    select '1'+2, cast('1'as int) + 2;
    +------+------+--+
    | _c0 | _c1 |
    +------+------+--+
    | 3.0 | 3 |
    +------+------+--+
    
    展开全文
  • 1、原始hive表结构及样例数据原始的hive表json字符串是字符类型的。 hive&gt; desc honeycomb_all_user_point_record; OK uid bigint point int ...

    1、原始hive表结构及样例数据
    原始的hive表json字符串是字符类型的。

    hive> desc honeycomb_all_user_point_record;
    OK
    uid                     bigint                                      
    point                   int                                         
    type                    int                                         
    action                  int                                         
    reason                  string                                      
    operatoruid             bigint                                      
    extra_info              string                                      
    created_time            timestamp                                   
    updated_time            timestamp                                   
    pt_month                string                                      
    pt_day                  string                                      
                     
    # Partition Information          
    # col_name              data_type               comment             
                     
    pt_month                string                                      
    pt_day                  string                                      
    Time taken: 0.265 seconds, Fetched: 17 row(s)

    数据查看:

    select *
    from honeycomb_all_user_point_record
    where pt_day between '2018-11-16' and '2018-11-24' 
      and type=2 and action=2001
    limit 6
    ;
    
    OK
    1379914240      30      2       2001    3255369873      -1      {"taskInfoOrder":1,"roomId":3668782}    2018-11-16 00:01:39     2018-11-16 00:01:39     2018-11 2018-11-16
    853248  30      2       2001    3255382148      -1      {"taskInfoOrder":1,"roomId":20045}      2018-11-16 00:06:03     2018-11-16 00:06:03     2018-11 2018-11-16
    1385764352      30      2       2001    3255395158      -1      {"taskInfoOrder":1,"roomId":19781833}   2018-11-16 00:11:16     2018-11-16 00:11:16     2018-11 2018-11-16
    1376662272      30      2       2001    3255397906      -1      {"taskInfoOrder":1,"roomId":68512066}   2018-11-16 00:13:54     2018-11-16 00:13:54     2018-11 2018-11-16
    205150464       30      2       2001    3255401630      -1      {"taskInfoOrder":1,"roomId":2384767}    2018-11-16 00:14:48     2018-11-16 00:14:48     2018-11 2018-11-16
    1396474624      30      2       2001    3255404690      -1      {"taskInfoOrder":1,"roomId":34016760}   2018-11-16 00:15:33     2018-11-16 00:15:33     2018-11 2018-11-16
    Time taken: 0.116 seconds, Fetched: 6 row(s)

    2、新hive表的建表及数据装载
    新的hive表结构定义的map类型,以供接下来的装载和使用。

    drop table if exists xxsongk1204_linchushou_oneroom_detail;
    CREATE TABLE `xxsongk1204_linchushou_oneroom_detail`(
      `pt_day` string,
      `uid` string,
      `point` string,
      `extra_info` map<string,string>)
    ROW FORMAT SERDE 
      'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe' 
    WITH SERDEPROPERTIES ( 
      'colelction.delim'=':', 
      'mapkey.delim'=',') 
    STORED AS INPUTFORMAT 
      'org.apache.hadoop.mapred.TextInputFormat' 
    OUTPUTFORMAT 
      'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat';

    原string类型转成map类型要用到str_to_map函数,根据实际情况要对原string作一些处理:

    insert overwrite table xxsongk1204_linchushou_oneroom_detail
    select pt_day,uid,point,str_to_map(regexp_replace(regexp_replace(regexp_replace(extra_info,'\"',''),'\\{',''),'\\}',''), ',', ':') extra_info
    from honeycomb_all_user_point_record
    where pt_day between '2018-11-16' and '2018-11-24' 
      and type=2 and action=2001 
    ;

    装载后的样例数据查看:

    hive> select * from xxsongk1204_linchushou_oneroom_detail limit 6;
    OK
    2018-11-16      1379914240      30      {"taskInfoOrder":"1","roomId":"3668782"}
    2018-11-16      853248  30      {"taskInfoOrder":"1","roomId":"20045"}
    2018-11-16      1385764352      30      {"taskInfoOrder":"1","roomId":"19781833"}
    2018-11-16      1376662272      30      {"taskInfoOrder":"1","roomId":"68512066"}
    2018-11-16      205150464       30      {"taskInfoOrder":"1","roomId":"2384767"}
    2018-11-16      1396474624      30      {"taskInfoOrder":"1","roomId":"34016760"}
    Time taken: 0.083 seconds, Fetched: 6 row(s)

    3、基于新表的数据处理和运算

    drop table if exists xxsongk1204_linchushou_oneroom_detail_proc;
    create table xxsongk1204_linchushou_oneroom_detail_proc as
    select pt_day,uid,point,extra_info['taskInfoOrder'] taskInfoOrder,extra_info['roomId'] roomId,extra_info from xxsongk1204_linchushou_oneroom_detail;
    
    select pt_day,
    count(distinct case when taskInfoOrder=1 then uid else null end) lagerthan10_point_cnt,
    count(distinct case when taskInfoOrder=2 then uid else null end) lagerthan30_point_cnt,
    count(distinct case when taskInfoOrder=3 then uid else null end) lagerthan60_point_cnt
    from xxsongk1204_linchushou_oneroom_detail_proc a1
    group by pt_day;
    

     

    展开全文
  • 探究hive中字符串时间戳的问题,通俗易懂,例子生动
  • Hive 中 时间戳,字符串转换

    千次阅读 2020-12-19 08:52:20
    13位时间戳装换为日期格式的字符串select from_unixtime( cast(1597651229344/1000 as int),'yyyy-MM-dd HH:mm:ss')时间字符串比较大小Mysql使用函数:STR_TO_DATE(str, format)使用示例:select*fromh_...
  • Hive 中各种字符串转换成日期格式

    万次阅读 多人点赞 2019-03-29 10:36:04
    Please refer below table to convert any date format into fixed format i.e yyyy-MM-dd . Input column name: dt (String).Replace dt with your column name. Input Format Code Output Format ...
  • Hive是基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制
  • 下面介绍几种常用的数据类 (1)CHAR()该数据类型用于定义固定长度的字符串,其中用于指定字符串的最大长度,必须是正整数且不超过32767。使用CHAR类型定义变量时,如果没有指定则默认值为1。...
  • */ public static String toHiveType(int sqlType) { switch (sqlType) { case Types.INTEGER: case Types.SMALLINT: return "INT"; case Types.VARCHAR: case Types.CHAR: case Types.LONGVARCHAR: case Types....
  • Hive字符串处理

    千次阅读 2019-06-14 15:19:35
    将字符串按指定分隔符切分,以数组形式返回结果后,可用 [ ] 选择元素,或结合explode()函数实现“行列”。 hive > select split ( '888|666|544' , '\\|' ) ; OK [ "888" , "666" , "544" ] hive > ...
  • `brands` string COMMENT 'from deserializer', `updateTime` TIMESTAMP COMMENT 'from deserializer', `dataSources` int COMMENT 'from deserializer') ROW FORMAT SERDE 'org.elasticsearch.hadoop.hive.EsSerDe...
  • Presto-JDBC使用说明

    2021-01-27 12:24:25
    //默认连接hiveString user = "root";Properties properties = new Properties();properties.setProperty("user", user);PrestoConnection conn = DriverManager.getConnection(prestoUrl, properties).unwrap...
  • Office 2003 提示安装 word 打开文档提示安装 MUI WEB developer

空空如也

空空如也

1
收藏数 14
精华内容 5
关键字:

hivestring转int