利用Hive实现求两条相邻数据时间差
2014-10-16 10:25
1966 查看
1.Hive row_number() 函数的高级用法 row_num 按照某个字段分区显示第几条数据
select imei,ts,fuel_instant,gps_longitude,gps_latitude,row_number() over (PARTITION BY imei ORDER BY ts ASC) as row_num from sample_data_2
2.row_num 是相互连续的,join 自身,然后时间相减可求差
create table obd_20140101 as
select a.imei,a.row_num,a.ts,COALESCE(unix_timestamp(a.ts, 'yyyy-MM-dd HH:mm:ss.S'), 0) - unix_timestamp(b.ts, 'yyyy-MM-dd HH:mm:ss.S') as intervel ,a.fuel_instant,a.gps_speed as obd_speed,a.gps_status,a.gps_longitude,a.gps_latitude,a.direct_angle,a.obdspeed from obddata_20140101 a join obddata_20140101 b on a.imei = b.imei and a.row_num = b.row_num +1
select imei,ts,fuel_instant,gps_longitude,gps_latitude,row_number() over (PARTITION BY imei ORDER BY ts ASC) as row_num from sample_data_2
2.row_num 是相互连续的,join 自身,然后时间相减可求差
create table obd_20140101 as
select a.imei,a.row_num,a.ts,COALESCE(unix_timestamp(a.ts, 'yyyy-MM-dd HH:mm:ss.S'), 0) - unix_timestamp(b.ts, 'yyyy-MM-dd HH:mm:ss.S') as intervel ,a.fuel_instant,a.gps_speed as obd_speed,a.gps_status,a.gps_longitude,a.gps_latitude,a.direct_angle,a.obdspeed from obddata_20140101 a join obddata_20140101 b on a.imei = b.imei and a.row_num = b.row_num +1
相关文章推荐
- hive实现根据用户分组,按用户记录求上下两条记录的时间差
- mysql 实现相邻两条数据相减
- 利用userData实现客户端保存表单数据
- 利用webgrid实现数据的批处理(添加和修改)
- 利用抽象工厂实现自定义多数据类型接口
- 利用oracle高级复制功能实现数据同步的问题
- 利用WebRequest来实现模拟浏览器通过Post方式向服务器提交数据
- 利用ASP实现Oracle数据记录的分页显示
- 利用DbProviderFactory实现数据操作跨数据库数据操作类.
- 利用存储过程实现交叉表格式数据查询的一种通用方法
- 利用javascript实现可视化数据备份[原创]
- 利用ShareObject实现Flash数据存储
- 利用反射原理和IExtenderProvider来实现WebControl与后台类的自动数据交换
- 利用XML数据绑定实现页面无刷新的数据浏览
- 利用剪贴板实现高速导出数据到Excel
- 利用userData实现客户端保存表单数据
- 利用接口灵活实现Excel导入/到出数据功能
- 利用XML数据绑定实现页面无刷新的数据浏览
- MS SQL 2000利用数据库复制技术 实现数据同步更新[摘]
- 利用复制实现数据同步