zoukankan      html  css  js  c++  java
  • hIve—timestamp时间戳问题

    先查看表

    timestamp可以转换为标准的时间(精确到秒); https://tool.lu/timestamp/

    这个时间格式用处很多:

       多个时间可以使用函数,来切换。

      每个用户 产生行为的时候,用timestamp来区分下单先后关系,记录什么时候看过哪些商品;

      比较大小,比如最早订单。。

       select max(`timestampss`) as max_tm,min(`timestampss`)  as min_tm from  user_data;  --``是1前面的那个符号,

      

    我们以最近的这个时间为时间参考点:

      hive> select ((cast(893286638 as bigint)-cast(`timestampss` as bigint))/(60*60*24)) as days from user_data limit 10;

      

     hive>select id,collect_list(cast (days as bigint)) as days_list from (select id,
    ((cast(893286638 as bigint)-cast(`timestampss` as bigint))/(60*60*24)) as days from user_data)t group by id limit 10;

     能查看用户的行为时间点,可以用这个数据做一个数据清洗的规则
    #collect_list,将数据搞成数组的形式。这种情况得出的数据用处:在同一个时间,多次评论,可能会有刷单的嫌疑。挖掘的意义。

    时间衰减的需求:

      一个用户有多条行为,做行为分析的时候,最近的行为越有效果(越好)。sum后面返回的是一个列表。所以需要聚合

    hive> select user_id,collect_list(cast(days as int)) as day_list    
      from
      (
      select user_id,exp(-(cast(893286638 as bigint)-cast(`timestampss` as bigint))/(60*60*24)/2)*rating as days from user_data) t
      group by user_id
      limit 10;
      

      exp正太分布,rating相当于分值。

      

      

  • 相关阅读:
    当使用vue的按键修饰符不起效果的时候怎么办?如@keyup.enter = '' ;
    Android 破解
    粒子跟随3
    关于国际化
    一些js及css样式
    Could not find method google() for arguments [] on repository container.
    redis
    window cmd 自动补全
    gradle中的 settings.gradle
    for(String s:list)的运行
  • 原文地址:https://www.cnblogs.com/taozizainali/p/9005870.html
Copyright © 2011-2022 走看看