当前位置:必发彩票官网 > 次动作函数 >

介绍几个Hive常用的函数吧!

  咳咳,今天来介绍一下几个Hive函数吧,先放一张我登哥划水的照片,希望大家也做一只自由的鱼儿,在知识的海洋里游呀游,嘻嘻!

  为了模拟我们的hive函数,我们特地将info字段写成了一个json格式,info中有两个键值对,一个是user_id,另一个是用户的行为,行为中有两个数据,用#隔开,分别是动作的类型和动作发生的时间。我们可以这样认为,0代表百度首页,1代表进行了一次搜索的搜索结果页,2代表查看搜索结果中国年的某个详情页。从一次动作0 到 下一次动作0,我们可以认为这是用户和百度一次完整的交互,即一次session,从一次动作1到下一次动作1,可以认为是一次完整的搜索操作。另一个字段是dt,即我们的分区字段。

  我们使用get_json_object来解析json格式字符串里面的内容,格式如下:

  这里我们是可以写正则表达式来替换的,比如我们想把#和数字都替换成大写字母Y:

  字符串切分函数split,很像我们javapython中写的那样,格式如下:

  split分割后返回一个数组,我们可以用下标取出每个元素。我们把action里面的动作类型和动作时间使用split分割开,语句如下:

  这里,如果我们想吧info中前后的大括号去掉,可以使用substring,语句如下:

  你可能会问,为什么开始位置是从2开始的而不是1,因为hive中字符串的索引是从1开始的而不是0,同时,我们谁用length方法来计算字符串的长度,结果如下:

  有条件计数使用count函数结合case when then语法来实现,比如我们要计算每个用户有多少个session,语句如下:

  上面的几个函数都只是简单的开胃菜,接下来我们来介绍一下重头戏,分组排序函数以及它的两个衍生的函数,row_number() over的格式如下:

  简单的说,我们使用partition by后面的字段对数据进行分组,在每个组内,使用ORDER BY后面的字段进行排序,并给每条记录增加一个排序序号。比如,我们根据每个用户每条记录的发生时间对用户的行为进行排序,并添加一个序号:

  lag括号里理由两个参数,第一个是字段名,第二个是数量N,这里的意思是,取分组排序之后比该条记录序号小N的对应记录的指定字段的值,如果字段名为ts,N为1,就是取分组排序之后上一条记录的ts值。

  lead括号里理由两个参数,第一个是字段名,第二个是数量N,这里的意思是,取分组排序之后比该条记录序号大N的对应记录的对应字段的值,如果字段名为ts,N为1,就是取分组排序之后下一条记录的ts值。

  比如,我们用lag和lead分别记录用户上一次行为和下一次行为的发生时间,语句如下:

  接下来,我们想实现下面的功能:给每条记录添加一列,该列代表此次session的开始时间。

  前面我们介绍过,我们这里认为一次session是从一个action_type为0开始,到下一次action_type为0结束,也就是说,我们这里的数据有三个session,前5条记录是一个session,这五条记录的新列的值应给为222,同理,中间三条记录的新列的值应改为226,而最后四条记录的值应为223,那么如何实现这个功能呢,这就需要我们的lag和lead函数啦。

  我们来一步步剖析一下该过程的实现,首先,我们在子查询中实现了两个表的内链接。第一个子查询查询出所有session开始的action_ts以及它对应的下一个session开始的action_ts,使用lead实现:

  随后,我们根据两个表的user_id进行内链接,但是内链接之后会多出很多数据,我们要从中取出满足条件的,这里的条件有两个,满足其一即可,即记录的ts在两个session开始的ts之间,要么就没有后一个session:

  文章出处:【微信号:atleadai,微信公众号:人工智能LeadAI】欢迎添加关注!文章转载请注明出处。

  点击右方佳嵌图标,可以看所有课程。1.为什么讲c经典面试题?(1)巩固《c语言深度解析》的课程内容(2)查漏补缺(3

  不过,当事件还没有发生的时候,就不是直接去求信息量了,而应该是求信息量的期望值,所以这个时候,我们要....

  我们可以看到,该网络将传统的非线性插值替换成 DUpsample,同时在 feature fuse ....

  请问ucgui中GUI_SetBkColor和WM_SetDesktopColor有什么区别?

  我在创建了一个视窗的时候,GUI_SetBkColor这个有效 但是用ucguibuilder的时候 里面生成的代码是用的第二个 这两个有什么...

  本文档的主要内容详细介绍的是自动控制中常见MATLAB函数的应用详细资料说明免费下载。

  本文档的主要内容详细介绍的是C和C++的编程规范资料免费下载包括了:1. 文件结构,2. 程序版式,....

  首先, 什么是空间? 最早探讨它的是物理学, 从亚里士多德到牛顿。 牛顿的物理学在绝对空间基础上存....

  STM32 在上电启动之后默认从 Flash 启动,启动之后会将 RW 段中的 RW-data(初始....

  首先,是否存在良好且广泛适用的表征呢?在计算机视觉等领域,答案是肯定的,因为深度卷积神经网络 (CN....

  将橡胶0形密封圈使用中涉及的材料非线性、几何非线性和接触非线性考虑到轴对称有限元模型中,讨论了不同使....

  本文档的主要内容详细介绍的是应用密码学的资料概述包括了:1.密码的由来,2.密码技术发展简介,3.密....

  gsm模块发送AT字符串命令的时候用了 u2_printf 函数,但是不理解函数里面的原理。比如为啥要调用va_startva_end ...

  注意:如果点击空白处无法输入,则点击字会有输入提示符 则可以使用键盘进行输入! 此板块为[ARM裸机加强版...

  如何优化?一般我们可以把我们计算的结果保证起来,例如把 f(4) 的计算结果保证起来,当再次要计算 ....

  本文档的主要内容详细介绍的是C++的const多文件编译预处理的资料说明包括了:1、const型常量....

  你好, 在我的设计中,我计算了128个长度和20位宽(这使得128 x 20 = 2560位向量)数组包含一些输入的FFT。 在模拟中一切顺...

  我定义一个返回bit类型的函数:bit Check_ADD1(); bit Check_ADD1 { 语句; 语句; &nb...

  刚才看c语言手册有这么一个函数strcpy()字符串复制 我有这么一个想法 定义一个数组:unsigned char dd[]={123456\r\n};定义一...

  为了解决噪声等问题,Supert Drybell使用生成建模技术,以一种可证明一致的方式自动估计标记....

  第一个问题:DFT,就是频域抽样。那么这个抽样的条件是什么呢?也就是第二个问题“频域抽样定理”。抽样....

  本文档的主要内容详细介绍的是气动控制回路的设计及应用实例详细资料说明。 2.逻辑函数及其简化 控....

  repeat将整个序列重复多次,只用用来处理epoch。如果直接调用repeat()的话,生成的序列....

  在进行按名称捆绑簇的操作中,实例中本意为输出五个元素的簇,但是在捆绑函数里只有四项,缺了一项温度计,一直没搞懂,求解...

  python中处理时间的模块有三个,datetime, time,calendar,融汇贯通三个模块....

  针对传统的小区 内开环功率控制算法通常以提升本小区的吞吐量性能为目标,忽略了当前小区用户对邻小区用户....

  针对基础磷虾群(KH)算法在求解复杂函数优化问题时局部搜索能力差、求解精度低、收敛速度慢、容易陷入局....

  完美的A/D传输特性(阶梯波形式)如图11a所示。水平刻度为模拟输入电压,特定点标记为1 LSB(1....

  为了提高分数阶比例积分微分( FOPID)控制器的控制效果,针对FOPID控制器参数整定的范围广、复....

  当前折扣{0-1} 背包问题(D{0-1} KP)模型将折扣关系作为一个新的个体,导致求解过程必需采....

  为解决障碍空间中的后近邻查询问题,提出一种基于改进的并行蚁群算法的五近邻查询方法( PAQ)。首先,....

  我正在整理一个包含大量用户功能的大型程序。 为了处理潜在的错误消息,我打算提出一些错误捕获代码。 例如,在用户函数“test...

  我们经常需要在Disassembly窗口中找到指定函数的位置,或者需要在Memory窗口中找到指定变....

  本文档的主要内容详细介绍的是PHP教程之foreach使用引用需要注意的问题详细资料说明免费下载。

  PHP教程之ImageTTFText函数实现图像加文字水印的详细资料说明

  ImageTTFText函数实现PHP图像加文字水印功能 一个ImageTTFText函数包含了如....

  你好,我有一个不同的大数组与实数。 在那里我想找到我能用max() - 函数做的最大值。然后我想知道这个max-value在哪个索引处。...

  接地棒的高频特性是涉及高频电流的几种应用中的一个主要问题,如雷击电流或瞬变现象。目前已有一些接地棒高....

  线程或者中断服务程序都可以给消息队列发送消息。当发送消息时,消息队列对象先从空闲消息链表上取下一个空....

  本文档的主要内容详细介绍的是机器人学习资料合集免费下载包括了:1.建立机器人模型,2.Seriall....

  unset函数是php自带的一个销毁变量的函数,我们介绍了利用unset来销毁静态变量与全局变量的方....

  Tensorflow是一个通过计算图的形式来表述计算的编程系统,计算图也叫数据流图,可以把计算图看做....

  认知无线电网络(CRN)通过允许次要用户(SUS)机会性地访问主要用户(PUS)的许可频谱,有望显著....

  声明类成员或方法为static,就可以不实例化类而直接访问。不能通过一个对象来访问其中的静态成员(静....

  《MATLAB 揭秘》为学习这种功能强大的数学计算工具提供了高效的、启发性的方法。 本书使用简单易行....

  Transformer和RNN模型不同,它只依赖于注意力机制。除了标志每个单词的绝对位置嵌入,它没有....

  php后门木马对大家来说一点都不陌生吧,但是它的种类您又知多少呢?php后门木马常用的函数大致上可分....

  但为什么每期双色球一等奖奖金不是固定的呢!就是因为其奖金机制,双色球当期销售额的51%作为当期奖金!....

  一种方法是比较一个反事实状态,如果智能体从初始状态(不作为基线)开始就没有做任何事情,那么环境就会处....

  该文中作者将语义分割问题看为像素分类问题,所以很自然的可以使用衡量分类差异的逐像素(Pixel-wi....

  本文档的主要内容详细介绍的是系统辨识的课件教材和MATLAB源码资料免费下载课件包括了:第1章绪论,....

  《MATLAB语言常用算法程序集》是电子工业出版社出版的图书,作者是龚纯,王正林。本书主要介绍MAT....

  说的专业些,这个叫做函数逼近。就是说我们想找到一个接近于我们目标函数(我们假设它存在)的方程,可以满....

  分形理论的最基本特点是用分数维度的视角和数学方法描述和研究客观事物,也就是用分形分维的数学工具来描述....

  本文档详细介绍的是C++程序设计教程之继承与派生的详细资料说明主要内容包括了:1. 继承与派生的概念....

  本文档详细介绍的是C++程序设计教程之多态性与虚函数的详细资料说明主要资料包括了:1 多态性的概念,....

  本文档的详细介绍的是C++程序设计教程之C++工具的详细资料说明主要内容包括了:1. 异常处理,2.....

  本文档详细介绍的是C++程序设计教程之基于对象的程序设计的详细资料说明主要内容包括了:1. 面向对象....

  本文档详细介绍的是C++程序设计教程之关于类和对象的进一步讨论资料说明主要内容包括了:1 构造函数,....

  本文档详细介绍的是C++程序设计教程之运算符重载的详细资料说明主要内容包括了:1. 什么是运算符重载....

  本文档详细介绍的是C++程序设计教程之数组的详细资料说明主要内容包括了:1. 数组的概念,2. 一维....

http://syn992.com/cidongzuohanshu/44.html
点击次数:??更新时间2019-04-08??【打印此页】??【关闭
  • Copyright © 2002-2017 DEDECMS. 织梦科技 版权所有  
  • 点击这里给我发消息
在线交流 
客服咨询
【我们的专业】
【效果的保证】
【百度百科】
【因为有我】
【所以精彩】