当前位置:小鱼儿玄机1站开奘结果 > 次动作函数 >

介绍几个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

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

  很多同学入门机器学习之后,直接用TensorFlow调包实现神经网络,对于神经网络内在机理知之甚少。

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

  为了进一步提高混沌系统的混沌特性,为图像加密算法提供更可靠的混沌系统,增强图像加密算法的安全性,提出....

  针对二维Logistic 分数阶微分方程的求解问题,引进了一种离散化方法对其进行离散求解。首先,将二....

  本文档的主要内容详细介绍的是电压电流闭环传递函数的详细资料说明。电压外环设计 电压环控制框图如下。

  你好,请你帮我,装配一个超过16个字节的数组。我尝试了这个表dc.b $ ff,........... $ FF,但它只接受最多16个字节,我的问...

  澄清说明:分类器与学习器的含义是什么?假设你有训练数据,并使用你构建另一个程序(模型)的程序处理这些....

  传感器应用广泛种类繁多,能快速配置好传感器并加以使用无疑会帮助产品开发节省很多时间,在AMetal中....

  似乎我们陷入了困境。幸运的是,我们想要在现实世界中学习的特性并不是从所有数学上可能的函数集中统一绘制....

  本文档的主要内容详细介绍的设计LCD1602点阵字符型液晶显示模块驱动封装的工程详细讲解资料免费下载....

  确保均值为零,并保持每层输入方差值不变,可以保证信号不会爆炸或消失。该方法既适用于前向传播(用于激活....

  时间序列聚类已成为近十年来越来越重要的研究课题。大多数现有的时间序列聚类方法依赖于使用欧几里得距离或....

  这个lcd是带字库的,但是今天遇到一个问题很奇怪。 uchar code dis5[] = {警告系统温度太高};同样是显示这个数组...

  例如:unsigned long x=198511; 主机通过串口发送数据 从机接收到这些数据存在数组里面 DATA[0]=1; DATA[1]=9; D...

  Python是一种半编译半解释型运行环境。首先,它会在模块“载入”时将源码编译成字节码(ByteCo....

  之前,我们在单片机程序开发时都会面对中断函数。众所周知的,这个中断函数肯定是要用C函数来定义的。我在....

  通常,一个C语言学习者登堂入室的标志就是学会使用了指针,而成为高手的标志又是“玩转指针”。指针是如此....

  针对基于Hopfield神经网络的最大频繁项集挖掘(HNNMFI)算法存在的挖掘结果不准确的问题,提....

  除此模型之外,本研究还尝试了几种其他的模型结构,一是移除教师 - 学生模型并使用自训练模型,二是在进....

  《信号与线版)》是由吴大正编写,全书共分8个章节,主要对信号与线性系统分析知识作了介....

  一个常见的用例是您希望在系统中调试 RF-ADC 和 RF-DAC,并需要编写一个小应用以在运行时进....

  简单的说就是希望可以在子函数中的某一步程序执行完之后返回到主函数中段的一句指令,尝试过用goto函数,发现不允许夸函数,有什...

  我们常希望用更抽象的方式来描述运算过程,以将其与具体的数据或运算区分开来。因此代数的运用随处可见:也....

  本文档的主要内容详细介绍的是LCD1602显示接收到的红外线的延迟函数。

  如何使用Python通过函数式编程完成excel中的数据处理及分析工作

  我们在创建数据表的时候在 price 字段中故意设置了几个 NA 值。对于空值的处理方式有很多种,可....

  除了分辨率的变化外,所有透镜也会受到一定的空间畸变。图2显示了如何以非线性方式拉伸或压缩图像,使整个....

  在镜头设计中有许多重要的特性,包括镜头分辨率、镜头畸变和光照均匀性等,直接影响机器视觉系统性能。

  此外由于卡通图像具有高度简化的特征和均匀的颜色,需要在像素级损失上进行引导。研究人员观察到画师的作品....

  根据人的内在认知状态采取适当行动的能力对于高情商的人来说是必不可少的。诸如自动辅导系统、心理和身体健....

  从上面阐释的步骤可以看出,神经网络中的权重由损失函数的导数而不是损失函数本身来进行更新或反向传播。因....

  本文档的主要内容详细介绍的是C语言入门自学教程课件免费下载包括了:第1章 C语言程序设计概述,第2章....

  因为你可以在不需要进行任何设置的情况下将其用于糟糕的、庞大的企业代码库中。只需打开装饰器(如下示例所....

  通常,一个C语言学习者登堂入室的标志就是学会使用了指针,而成为高手的标志又是“玩转指针”。指针是如此....

  本文档的主要内容详细介绍的是两张表之间进行数据库查询时聚合函数用法的详细实例说明。注意:表中内容中文....

  昨天和清华大学参加智能车竞赛的队伍进行交谈,参加室内“步步为营”创意组的潘晓凡同学演示了他们对车模如....

  在这篇长文中,Andrej Karpathy像一个操心的老父亲一样,详细且循循善诱地对所有机器学习从....

  手册中有如上图的相关内容,但是使用哪个函数呢,我使用的是 MULTIEDIT_AddKey(hItem,GUI_KEY_DOWN);但...

  本文档的主要内容详细介绍的是STM32实用的按键处理程序可移植的函数免费下载

  嵌入式代码编码规范,用于规范自己的代码,增强可读性,非标准规范。最好能强制自己形成良好的编码风格,有....

  有没有人搞过,我现在用一块2407的板子控制摄像头采集图像,串口读回来的数据太大,想存在数组里。但是 定义的数组超过2K的,程...

  三角函数的计算是个复杂的主题,有计算机之前,人们通常通过查找三角函数表来计算任意角度的三角函数的值。....

  本文档的主要内容详细介绍的是FPGA驱动的储存模块的使用教程免费下载。

  第二步,不设置任何directive,直接执行C综合,此时会显示如下错误信息。该信息表明,在非dat....

  仿真结束后可以点击 View Models按钮查看SP模型参数。同时3D区域和SP模型被储存在项目文....

  Python 多好用不用多说,大家看看自己用的语言就知道了。但是 Python 隐藏的高级功能你都 ....

  请问labview中一维数组当写入的数组达到设定大小时重置该数组为接下来写入的值该怎么实现呢?

  将通讯接收的数据写入一维数组,想每10个数据保存成一个数组,该如何实现呢? ...

  目标检测是一种多任务学习问题,包含目标定位和目标分类。当前最佳的目标检测器(比如 Faster RC....

  ZStack是下一代开源的云计算IaaS(基础架构即服务)软件。 它主要面向的是未来的智能数据....

  针对在云 雾协作下实现移动用户任务请求的合理分配与调度的问题,提出了一种基于云雾协作模型的任务分配算....

  因为当你在同一行里,同时给两个变量赋同一值时,解释器知道这个对象已经生成,那么它就会引用到同一个对象....

  从上面公式可以注意到,它得到的是一个全局最优解,但是每迭代一步,都要用到训练集所有的数据,如果样本数....

  本文档的主要内容详细介绍的是strToInt和intToStr的定义和验证程序说明

  sklearn.decomposition.SparsePCA和sklearn.decomposit....

  Python 是 TensorFlow 支持的第一种客户端语言,目前支持的功能最多。该功能正逐步移植....

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