mediarecorder添加时间戳_Python脚本实现数据处理(官方实例)和Hive自带时间函数...
官網(wǎng)示例
官網(wǎng)地址:
https://cwiki.apache.org/confluence/display/Hive/GettingStarted#GettingStarted-ApacheWeblogData
下載數(shù)據(jù)
wget http://files.grouplens.org/datasets/movielens/ml-100k.zip
我們下載好數(shù)據(jù)
安裝unzip
yum install -y unzip
解壓數(shù)據(jù)
創(chuàng)建庫(kù)
創(chuàng)建表
CREATE TABLE u_data (
userid INT,
movieid INT,
rating INT,
unixtime STRING)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY 't'
STORED AS TEXTFILE;
加載數(shù)據(jù)
LOAD DATA LOCAL INPATH '/data/ml-100k/u.data' OVERWRITE INTO TABLE u_data;
查看下數(shù)據(jù)
select * from u_data limit 10;
編寫(xiě)python腳本,創(chuàng)建文件weekday_mapper.py,編寫(xiě)下面代碼
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)])
創(chuàng)建結(jié)果表
CREATE TABLE u_data_new (
userid INT,
movieid INT,
rating INT,
weekday INT)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY 't';
添加文件
add FILE /data/weekday_mapper.py;
插入數(shù)據(jù)
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;
查詢結(jié)果
SELECT weekday, COUNT(*)
FROM u_data_new
GROUP BY weekday;
就可以看到結(jié)果了,周一評(píng)論量12254,后面依次類推得到信息
再看下常見(jiàn)的時(shí)間格式
Hive的自帶的時(shí)間函數(shù),利用show functions;
查看下面兩個(gè)函數(shù):
unix_timestamp(轉(zhuǎn)換為時(shí)間戳)unix_timestamp,以格林威治時(shí)間為基準(zhǔn)
from_unixtime (轉(zhuǎn)換為標(biāo)準(zhǔn)時(shí)間格式)
這些時(shí)間準(zhǔn)確表達(dá)可以分析網(wǎng)站后臺(tái)日志數(shù)據(jù),統(tǒng)計(jì)用戶停留時(shí)間等。比如查看兩條時(shí)間的時(shí)間差,先轉(zhuǎn)換為統(tǒng)一unix時(shí)間戳,再相減就能得到
測(cè)試
select unix_timestamp("2015-08-31 00:04:37");
如果使用下面
select unix_timestamp("20150831000437");
select unix_timestamp("20150831 000437");
運(yùn)行之后null,無(wú)法識(shí)別格式
指定格式進(jìn)行轉(zhuǎn)換,
select unix_timestamp("20150831000437","yyyyMMddHHmmss");
select unix_timestamp("20150831000437","yyyyMMdd HHmmss");這樣也不可以
將Unix時(shí)間戳轉(zhuǎn)換為標(biāo)準(zhǔn)時(shí)間格式
select from_unixtime(1440950677);
這次就可以
select from_unixtime(1440950677,"yyyyMMdd HHmmss");
總結(jié)
以上是生活随笔為你收集整理的mediarecorder添加时间戳_Python脚本实现数据处理(官方实例)和Hive自带时间函数...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: cf两边黑屏怎么解决win10_关闭自动
- 下一篇: mysql索引 和 es索引_MySQL