快捷搜索:  汽车  科技

python数据分析用什么框架(Python脚本实现数据处理)

python数据分析用什么框架(Python脚本实现数据处理)解压数据yum install -y unzipwget我们下载好数据安装unzip

官网示例

python数据分析用什么框架(Python脚本实现数据处理)(1)

官网地址:


python数据分析用什么框架(Python脚本实现数据处理)(2)

下载数据

wget

我们下载好数据

python数据分析用什么框架(Python脚本实现数据处理)(3)

安装unzip

yum install -y unzip

python数据分析用什么框架(Python脚本实现数据处理)(4)

解压数据

python数据分析用什么框架(Python脚本实现数据处理)(5)

创建库

python数据分析用什么框架(Python脚本实现数据处理)(6)

创建表

CREATE TABLE u_data (

userid INT

movieid INT

rating INT

Unixtime STRING)

ROW FORMAT DELIMITED

FIELDS TERMINATED BY '\t'

STORED AS TEXTFILE;

python数据分析用什么框架(Python脚本实现数据处理)(7)

加载数据

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

python数据分析用什么框架(Python脚本实现数据处理)(8)

查看下数据

SELECT * from u_data limit 10;

python数据分析用什么框架(Python脚本实现数据处理)(9)

编写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)])

python数据分析用什么框架(Python脚本实现数据处理)(10)

创建结果表

CREATE TABLE u_data_new (

userid INT

movieid INT

rating INT

weekday INT)

ROW FORMAT DELIMITED

FIELDS TERMINATED BY '\t';

python数据分析用什么框架(Python脚本实现数据处理)(11)

添加文件

add FILE /data/weekday_mapper.py;

python数据分析用什么框架(Python脚本实现数据处理)(12)

插入数据

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;

python数据分析用什么框架(Python脚本实现数据处理)(13)

查询结果

SELECT weekday COUNT(*)

FROM u_data_new

GROUP BY weekday;

python数据分析用什么框架(Python脚本实现数据处理)(14)

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

python数据分析用什么框架(Python脚本实现数据处理)(15)

再看下常见的时间格式

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

查看下面两个函数:

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

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

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

测试

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

python数据分析用什么框架(Python脚本实现数据处理)(16)

如果使用下面

select unix_timestamp("20150831000437");

select unix_timestamp("20150831 000437");

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

python数据分析用什么框架(Python脚本实现数据处理)(17)

指定格式进行转换,

select unix_timestamp("20150831000437" "yyyyMMddHHmmss");

python数据分析用什么框架(Python脚本实现数据处理)(18)

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

python数据分析用什么框架(Python脚本实现数据处理)(19)

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

select from_unixtime(1440950677);

python数据分析用什么框架(Python脚本实现数据处理)(20)

这次就可以

select from_unixtime(1440950677 "yyyyMMdd HHmmss");

python数据分析用什么框架(Python脚本实现数据处理)(21)

猜您喜欢: