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