HIVE: Transform应用实例

news/2024/12/30 18:31:42

数据文件内容

steven:100;steven:90;steven:99^567^22
ray:90;ray:98^456^30
Tom:81^222^33

期望最终放到数据库的数据格式如下:

steven    100    567     22
steven    90      567     22
steven    99      567     22
ray       90      456    30
ray       98      456    30
Tom       81      222    33

Specifically, if you want to return a different number of columns, or a different number of rows for a given input row, then yu need to perform what hive calls a transform.

 

1.创建表存储原始数据

create table u_data(col1 string, code int, age int) ROW FORMAT DELIMITED FIELDS TERMINATED BY '^' STORED AS TEXTFILE;

2.加载数据

load data local inpath '/home/stevenxia/data1' overwrite into table u_data;

3.编写transform脚本

#!/usr/bin/python
import sys
for line in sys.stdin:values = line.split()tmp = values[0]key_values = tmp.split(";")for kv in key_values:k = kv.split(":")[0]v = kv.split(":")[1]print '\t'.join([k,v,values[1],values[2]])

4.把脚本部署到node节点, 位置 /home/stevenxia/u.py

5.这样hive就可以使用了

select transform(u.col1, u.code, u.age) using '/home/stevenxia/u.py' as (col1, col2, col3, col4) from (select * from u_data) as u;

运行结果

 

转载于:https://www.cnblogs.com/silva/p/4498032.html

文章来源:https://blog.csdn.net/weixin_33850890/article/details/93999299
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:https://dhexx.cn/news/show-1602203.html

相关文章

三层架构和 MVC的区别

首先,MVC和三层架构,是不一样的。  三层架构中,DAL(数据访问层)、BLL(业务逻辑层)、WEB层各司其职,意在职责分离。  MVC是 Model-View-Controller,严格说这三个加起来以后才是三层架构中的WEB层,也就是说&#xff…

在网上看到和篇关于sql server 2005的性能优化篇,觉得写得很好。

在网上看到和篇关于sql server 2005的性能优化篇,觉得写得很好。 SQL Server2005扩展函数已经不是一件什么新鲜的事了,但是我看网上的大部分都是说聚合函数,例子也比较浅,那么这里就讲讲我运用扩展函数来优化数据库性能的例子&…

程序员应该思索的那些事

程序员每天该做的事  1、总结自己一天任务的完成情况   最好的方式是写工作日志,把自己今天完成了什么事情,遇见了什么问题都记录下来,日后翻看好处多多   2、考虑自己明天应该做的主要工作   把明天要做的事情列出来,并按…

percona-toolkit

摘要:死锁:是指两个或则多个事务在同一个资源上相互占用,并请求锁定对方占用的资源,而导致恶性循环的现象;当产生死锁的时候,MySQL会回滚一个小事务的SQL,确保另一个完成。上面是死锁的概念&…

一本名不符实的.NET书籍: Game Engine Toolset Development

购买:http://www.amazon.com/Engine-Toolset-Development-Graham-Wihlidal/dp/1592009638电子版本:http://rapidshare.com/files/29991124/1592009638.zip下载下来,随便翻了翻后我非常吃惊,真不知道作者怎么会起这么个名字&#x…

C++ new 和 malloc 的区别

new 是运算符,malloc()是一个库函数;new会调用构造函数,malloc不会;new 返回指定类型指针,malloc返回void*指针,需要强制类型转换;new 会自动计算需分配的空间&#xff0…

Visual StudioC++新特性--MFC王者归来(3)MFC新功能-基于windows7的重启管理灾难恢复

为了提高用户体验,让用户用起来感觉比较爽,Microsoft在Windows Vista系统中首先引入了重启管理器(Restart Manager)。 就类似office2007的自动保存功能,一旦出了故障,可以恢复自己的工作成果,不至于让自己工作成果因为…

50个精美绝伦的 Infographics

Infographics 是数据,信息,知识的视觉阐述。按 Rick Mans 的说法,Infographics 是所有图形设计中最具挑战性的工作,你需要漫长的数据收集过程,而将这些数据转换为令人过目难忘的视觉展示更过人的功底。本文搜集了50个精…

qt中的中文路径读取失败解决问题 const char * -QString

const char *pStr "QT中文路径的问题"; QString fileName QString::fromLocal8Bit(pStr);

Spring和Hibernate集成配置事务管理

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010741376/article/details/45724017 在Spring中有声明式事务的概念,通过和Hibernate类似框架的集成,可以很好的完成声明式事务。 其实,不…