python中transform用法_TRANSFORM 用法
Hive 的 TRANSFORM 关键字提供了在 SQL 中调用自写脚本的功能。适合实现 Hive 中没有的 功能又不想写 UDF 的情况
具体以一个实例讲解。
Json 数据: {"movie":"1193","rate":"5","timeStamp":"978300760","uid":"1"}
需求:把 timestamp 的值转换成日期编号
1、先加载 rating.json 文件到 hive 的一个原始表 rate_json
create table rate_json(line string) row format delimited;
load data local inpath '/home/hadoop/rating.json' into table rate_json;
2、创建 rate 这张表用来存储解析 json 出来的字段:
create table rate(movie int, rate int, unixtime int, userid int) row format delimited fields
terminated by '\t';
解析 json,得到结果之后存入 rate 表:
insert into table rate select
get_json_object(line,'$.movie') as moive,
get_json_object(line,'$.rate') as rate,
get_json_object(line,'$.timeStamp') as unixtime,
get_json_object(line,'$.uid') as userid
from rate_json;
3、使用 transform+python 的方式去转换 unixtime 为 weekday
先编辑一个 python 脚本文件
########python######代码## vi weekday_mapper.py#!/bin/python
importsys
importdatetime
for line insys.stdin:
line =line.strip()
movie,rate,unixtime,userid = line.split('\t')
weekday =datetime.datetime.fromtimestamp(float(unixtime)).isoweekday()
print '\t'.join([movie, rate, str(weekday),userid])
保存文件 然后,将文件加入 hive 的 classpath:
hive>add file /home/hadoop/weekday_mapper.py;
hive>insert into table lastjsontable select transform(movie,rate,unixtime,userid)
using 'python weekday_mapper.py' as(movie,rate,weekday,userid) from rate;
创建最后的用来存储调用 python 脚本解析出来的数据的表:lastjsontable
create table lastjsontable(movie int, rate int, weekday int, userid int) row format delimited
fields terminated by '\t';
最后查询看数据是否正确
select distinct(weekday) from lastjsontable;
python中transform用法_TRANSFORM 用法相关推荐
- python的继承用法_【后端开发】python中继承有什么用法?python继承的用法详解
本篇文章给大家带来的内容是关于python中继承有什么用法?python继承的用法详解,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 面向对象三大特征 1.封装:根据职责将属性和方法 ...
- python中index函数_详解python中的index函数用法
1.函数的创建 def fun(): #定义 print('hellow') #函数的执行代码 retrun 1 #返回值 fun() #执行函数 2.函数的参数 普通参数 :要按照顺序输入参数 de ...
- python中int函数的用法浅析_Python中int()函数的用法浅析
int()是Python的一个内部函数 Python系统帮助里面是这么说的 >>> help(int) Help on class int in module __builtin__ ...
- python中的lambda函数用法--无需定义函数名的函数或子程序,避免代码充斥着大量单行函数
匿名函数lambda:是指一类无需定义标识符(函数名)的函数或子程序. lambda 函数可以接收任意多个参数 (包括可选参数) 并且返回单个表达式的值. 要点: lambda 函数不能包含命令 包含 ...
- python中int用法,Python中int()函数的用法浅析
int()是Python的一个内部函数 Python系统帮助里面是这么说的 >>> help(int) Help on class int in module __builtin__ ...
- python中pop函数的用法_python中pop()函数怎么用
python中pop()函数的用法:pop()函数用于移除列表中的一个元素(默认最后一个元素),并且返回从列表中移除的元素对象.函数语法:[list.pop(ojb=list[-1])]. pop() ...
- python中index方法详解_详解python中的index函数用法
1.函数的创建 def fun(): #定义 print('hellow') #函数的执行代码 retrun 1 #返回值 fun() #执行函数 2.函数的参数 普通参数 :要按照顺序输入参数 de ...
- python中config方法作用,python中ConfigParse模块的用法
本文实例讲述了python中ConfigParse模块的用法,分享给大家供大家参考.具体方法如下: 写配置一般用ConfigParse.RawConfigParse类 读配置用ConfigParse. ...
- python中heapq的库是什么_详解Python中heapq模块的用法
详解Python中heapq模块的用法 来源:中文源码网 浏览: 次 日期:2018年9月2日 [下载文档: 详解Python中heapq模块的用法.txt ] (友情提示:右键点上行t ...
- python中global和nonlocal用法的详细说明
1.前言 第一,两者的功能不同.global关键字修饰变量后标识该变量是全局变量,对该变量进行修改就是修改全局变量,而nonlocal关键字修饰变量后标识该变量是上一级函数中的局部变量,如果上一级函数 ...
最新文章
- 没有日志,只有MDF文件如何恢复数据库(转)[
- CTF中常见Web源码泄露总结
- Java 算法 换零钞
- java用枚举代替int常量,让你的系统更安全--用枚举enum替代int常量
- 凯恩帝绝对坐标清零_凯恩帝100T数控车床怎么把加工数量时间清零
- 样式穿透和实现固钉效果
- 富爸爸穷爸爸--读书笔记
- PS怎么调整字体的行间距
- C 中使用GDI+制作个性化的网站新闻标题
- 2019牛客ACM暑期多校第八场
- git 仓库分支多文件夹管理
- 戴姆勒与Infosys结成战略合作伙伴关系,推动创新及IT基础设施转型
- pandas列是否为空_如果列值不为空,Python pandas将应用函数
- FDC2214调试笔记(1)——为什么FDC2214输出的会是0x00000000或者0xffffffff?
- 小绮的踩坑日记|小土堆pytorch视频——tensorboard
- 全球与中国漏磁清管器市场深度研究分析报告
- 毕业设计:基于SSM框架的新生报到数据可视化系统
- pytorch 拾贝集
- mini2440 安装OpenWrt 过程记录
- 使用 github pages, 部署静态网页
热门文章
- CDN网络简介及原理
- 一次失败的面试经历:我只想找个工作,你却用面试题羞辱我
- linux安装后,ghost其他win7系统盘,无法启动的修复
- js使用ip和子网掩码计算所在网段
- 英语流利说显示服务器错误,英语口语流利说系列失望(附音频)
- [Unity3D]Unity3D游戏开发之《经典打砖块》游戏项目讲解
- [英语单词] gated; cycle gated
- 2345浏览器,2011年4月14号的V1.1, beta版本又这些新功能!
- uniqueResult和Result有什么区别
- Code Ocean 上传代码 手把手教程