Tag Archives: Hive

Hive中的TRANSFORM:使用脚本完成Map/Reduce。

数据、例子,修改自:《Hive with Python example》

首先来看一下数据:
hive> select * from test;
OK
1 3
2 2
3 1
假设,我们要输出每一列的md5值。在目前的hive中是没有这个udf的。

我们看一下Python的代码:
#!/home/tops/bin/python

import sys
import hashlib

for line in sys.st[......]

继续阅读

Hive中的InputFormat、OutputFormat与SerDe

前言
Hive中,默认使用的是TextInputFormat,一行表示一条记录。在每条记录(一行中),默认使用^A分割各个字段。

在有些时候,我们往往面对多行,结构化的文档,并需要将其导入Hive处理,此时,就需要自定义InputFormat、OutputFormat,以及SerDe了。

首先来理清这三者之间的关系,我们直接引用Hive官方说法:

SerDe is a short name for "Serializer and Deserializer."
Hive us[......]

继续阅读

Hive中Group By的去重

在Hive的是用中,我们经常会有这种需求:

按照同一个id进行Group By,然后对另一个字段去重,例如下面得数据:
id pic
1 1.jpg
2 2.jpg
1 1.jpg
此时,是用DISTINCT或者2 col得Group By都是不行得,我们可以用这个UDAF:collect_set(col),它将对同一个group by 得key进行set去重后,转换为一个array。

再举一个例子,我们可以对pic进行去重,拼接:
SELECT id, CONCAT_W[......]

继续阅读

如何在Hive中使用Json格式数据

本文参考了:http://pkghosh.wordpress.com/2012/05/06/hive-plays-well-with-json/

表示感谢!

总体来说,有两大类方法:

1、将json以字符串的方式整个入Hive表,然后使用LATERAL VIEW json_tuple的方法,获取所需要的列名。

2、将json拆成各个字段,入Hive表。这将需要使用第三方的SerDe,例如:https://code.google.com/p/hive-json-serde/[......]

继续阅读