mediarecorder添加时间戳_Python脚本实现数据处理(官方实例)和Hive自带时间函数...

6ec3b3c1a1187ec037a7fe70c586b4f6.png

官网示例

18e3b982ef0e8eb92aeb9b6e841240a4.png

官网地址:

https://cwiki.apache.org/confluence/display/Hive/GettingStarted#GettingStarted-ApacheWeblogData

f4f63da6a443de4703dc100028f8abeb.png

下载数据

wget http://files.grouplens.org/datasets/movielens/ml-100k.zip

我们下载好数据

9611c2ba9cfee193cd6c9e20241fdefb.png

安装unzip

yum install -y unzip

ec785a1bc1cc39dc99da26fad57ab5bb.png

解压数据

2552ce776e3cfc7648bb09d3e22d0f66.png

创建库

6e55bd0b51a274af4ba3fa2c800bad47.png

创建表

CREATE TABLE u_data (

userid INT,

movieid INT,

rating INT,

unixtime STRING)

ROW FORMAT DELIMITED

FIELDS TERMINATED BY 't'

STORED AS TEXTFILE;

8584020dba5f23fd9362ae9b5564ec19.png

加载数据

LOAD DATA LOCAL INPATH '/data/ml-100k/u.data' OVERWRITE INTO TABLE u_data;

3b948849b7f497c2903b4e2cf93e59c5.png

查看下数据

select * from u_data limit 10;

a6f2e92b909e8a0418a457a11445fa05.png

编写python脚本,创建文件weekday_mapper.py,编写下面代码

import sys

import datetime

for line in sys.stdin:

line = line.strip()

userid, movieid, rating, unixtime = line.split('t')

weekday = datetime.datetime.fromtimestamp(float(unixtime)).isoweekday()

print 't'.join([userid, movieid, rating, str(weekday)])

70489a9916dccd49d33d230536efc080.png

创建结果表

CREATE TABLE u_data_new (

userid INT,

movieid INT,

rating INT,

weekday INT)

ROW FORMAT DELIMITED

FIELDS TERMINATED BY 't';

cc9bd84dbd44aa06fd6c5bc9ab32e9ca.png

添加文件

add FILE /data/weekday_mapper.py;

3c8cd64c7ce59931560a6edfa7a4da7b.png

插入数据

INSERT OVERWRITE TABLE u_data_new

SELECT

TRANSFORM (userid, movieid, rating, unixtime)

USING 'python weekday_mapper.py'

AS (userid, movieid, rating, weekday)

FROM u_data;

b7cb62c84ed0fdd7f4989cbed4678ba0.png

查询结果

SELECT weekday, COUNT(*)

FROM u_data_new

GROUP BY weekday;

29d35891a1af1d4128a24a037b793f05.png

就可以看到结果了,周一评论量12254,后面依次类推得到信息

1e4a4f90ba7206654d53d22c588a902a.png

再看下常见的时间格式

Hive的自带的时间函数,利用show functions;

查看下面两个函数:

unix_timestamp(转换为时间戳)unix_timestamp,以格林威治时间为基准

from_unixtime (转换为标准时间格式)

这些时间准确表达可以分析网站后台日志数据,统计用户停留时间等。比如查看两条时间的时间差,先转换为统一unix时间戳,再相减就能得到

测试

select unix_timestamp("2015-08-31 00:04:37");

1db638a2e1cdd69fd92468d894fcce63.png

如果使用下面

select unix_timestamp("20150831000437");

select unix_timestamp("20150831 000437");

运行之后null,无法识别格式

26cacc62a63d11b41465c2955cf2b38f.png

指定格式进行转换,

select unix_timestamp("20150831000437","yyyyMMddHHmmss");

4e3606bf16b3b0bfb6117dd271ba9763.png

select unix_timestamp("20150831000437","yyyyMMdd HHmmss");这样也不可以

5c059285a17312f5671617a653500d82.png

将Unix时间戳转换为标准时间格式

select from_unixtime(1440950677);

a351c9fcaeb885c7e4a16121873d6e2d.png

这次就可以

select from_unixtime(1440950677,"yyyyMMdd HHmmss");

32409f014abcb80e794ee783439b24cc.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/490199.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从空城计到阿尔法狗,博弈论如何渗透我们的生活?

来源:返朴2016年,有那么一只“狗”大闹天宫,这在整个人类社会引起了轩然大波。它就是阿尔法狗(AlphaGo),是谷歌(Google)旗下公司DeepMind 在人工智能与博弈论交叉研究上的一个杰作。…

POSIX条件变量API函数

初始化条件变量 int pthread_cond_init(pthread_cond_t *cond,const pthread_condattr_t *attr); 返回值:函数成功返回0;任何其他返回值都表示错误 初始化一个条件变量。当参数attr为空指针时,函数创建的是一个缺省的条件变量。 阻塞 in…

阶段性思考

算上在学校,学习前端已经两年了,但水平依旧不高,至今都只愿意钻研布局和交互,把兼容和动效玩得哈皮,但其实依旧没有装逼的自信。 也不得不回到当初的那个思考,如果只是做网页,又何必弄前端&…

反弹式木马原理_汽车避震器的原理与改装问题

一、避震器or避振器“震”字是指车轮在路面的滚动过程中,由于路面的不平,从路面传递上来的震动,而不是人为制造“振”动,所以使用“震”字更科学。二、避震器的工作原理避震器的工作原理是通过活塞运动产生阻尼力,将动…

科学探索奖首批50名获奖者都有谁?

来源:知识分子9月20日上午,经过四个多月的评审,2019年 获奖名单正式公布。来自全国26个科研单位、高校和企业的50位科学家成为首届“科学探索奖”获奖者,每人将在未来5年获得由腾讯基金会资助的300万元人民币。据悉,20…

python_递归原理

需要:  输出这样一些有规律数据: [0,1,1,2,3,5,8,13,21,34.......]看上面需要好像有一些规律,没错,就是大家熟悉的婓那波契数列,n(n-1)(n-2)如1385;运用递归原理得:def func(arg1,arg2): if arg1 0: print arg1,arg2 arg3 a…

POSIX信号量API函数

头文件:semaphore.h 初始化: int sem_init(sem_t *sem, int pshared, unsigned int value); sem_init() 初始化一个信号量,信号量对象为sem。value 参数指定信号量的初始值。 pshared 参数指明信号量是由进程内线程共享,还是由…

untitled软件怎么用_苹果手机怎么用4G网络于App Store下载超过200MB以上的软件

近两年来,随着苹果中国市场份额被国产品牌挤占了不少,他们越来越懂得“聆听”中国用家的需要,其中一项便是用手机网络(4G)下载iOS应用。在这一点上我们中国人也不用再妄自菲薄了,在疯狂的4G建网以后,我们国家已经拥有全…

关于人脸识别的最全研究!

来源:北京物联网智能技术应用协会本文内容涵盖人脸识别发展历程、市场研究、核心技术、商业应用以及产业落地、个人看法等干货研究。注意,本文干货满满,约有2万7千字,强烈建议大家先收藏后学习!01 发展史1. 人脸识别的…

Stream学习过程中遇到的一个问题记录

Stream学习过程中遇到的一个问题记录 Test public void stream_modifiedV2(){List<String> strings Arrays.asList("aaa","bb","cc","dddddddddddddddddddddddddddddddd");Stream<String> stringStream strings.stream(…

C++ swap用法

swap用于交换两个元素的值 template<class T> void swap(T &a,T &b) {T c(a);ab;bc; } 例如交换两个int型变量的值&#xff1a; #include <iostream> using namespace std;int main() {int a1,b2;swap(a,b);cout<<a<<" "<<…

python table类中的 可以作为初步观察工具_Python程序设计基础_课程2020最新章节测试网课课后答案...

Python程序设计基础_课程2020最新章节测试网课课后答案更多相关问题科学探究的过程一般要经过______、作出假设、制定方案、实施方案&#xff0c;得出结论等五个步骤&#xff0e;在生物学研究中&#xff0c;当实验的结果与原有的知识发生矛盾时&#xff0c;应大胆地修正原有的知…

关于字节对齐以及内存占用

参考博文&#xff1a; http://www.javamex.com/tutorials/memory/object_memory_usage.shtml 本文主要考虑正常情况下一个对象在堆上的内存占用情况&#xff1a;对于下面的特殊情况不作讨论 1、某些情况下&#xff0c;JVM可能不会把对象存储在堆上&#xff1a;比如小的线程私有…

人工智能应用实践与趋势

来源&#xff1a;阿里云研究中心《崛起的超级智能》一书主要阐述当今天人类为人工智能的春天到来而兴奋&#xff0c;为人工智能是否超越人类而恐慌的时候&#xff0c;一个更为庞大、远超人类预期的智能形态正在崛起&#xff0c;种种迹象表明50年来&#xff0c;互联网正在从网状…

C++中set和map的erase用法

删除容器中值为 val 的元素 size_type erase (const value_type& val); 删除 it迭代器指向的元素 iterator erase (const_iterator it); 删除 [first,last) 区间内的所有元素 iterator erase (const_iterator first, const_iterator last);

excel表格打印每页都有表头_这么漂亮的Excel表格,用黑白打印机打印真是可惜了...

我们在日常工作中&#xff0c;利用Excel制作的表格通过会填充颜色&#xff0c;设置字体和边框格式、颜色&#xff0c;把表格弄的漂漂亮亮的&#xff0c;一个是为了缓解视觉疲劳&#xff0c;另一个是为了老板看到漂亮的表格一不小心加工资呢&#xff0c;但是一个问题出来了&…

常用的分隔符有哪三种_加固博士:常用防水材料大比拼,究竟花落谁家?

建筑物漏水问题&#xff0c;是日常生活中非常常见的问题&#xff0c;房屋漏水怎么办才好呢&#xff1f;这个问题困扰了很多人&#xff0c;有些户主会图个省事&#xff0c;将漏水问题直接交给装修公司&#xff0c;只要愿意支付防水施工费用&#xff0c;装修公司就会安排资深的师…

svg笔记----------path篇

每个路径都必须以moveto 命令开始 moveto、lineto和closepath <path d"M 10 10 L 100 10z"/> 大写字母命令的坐标是绝对的&#xff0c;小写字母命令的坐标是相对的。其它情况&#xff1a; 1.z(closepath)命令没有坐标&#xff0c;它的大小写形式效果相同。 2.如…

互联网大脑,城市大脑的“大脑”究竟什么含义?

来源&#xff1a;刘锋的未来课堂21世纪以来&#xff0c;科技领域与一个神经学领域的概念 “大脑”出现了意外的结合&#xff0c;涌现出诸多前沿科技的大脑概念。从互联网大脑&#xff0c;城市大脑&#xff0c;到谷歌大脑&#xff0c;百度大脑&#xff0c;讯飞超脑、360安全大脑…

C++ lower_bound和upper_bound的区别

lower_bound( begin,end,num)&#xff1a;返回第一个大于等于参数num的迭代器 upper_bound( begin,end,num)&#xff1a;返回第一个大于参数num的迭代器 > 和> 是二者的区别