Hive 内置为我们提供了大量的常用函数用于日常的分析,但是总有些情况这些函数还是无法满足我们的需求。
值得高兴的是,Hive 允许用户自定义一些函数,用于扩展 HiveQL 的功能,这类函数叫做 UDF(用户自定义函数)。
使用 Java 编写 UDF 是最常见的方法,但是本文介绍的是如何使用 Python 来编写 Hive 的 UDF 函数。
假设我们有个名为 data.txt 的文件,格式如下:
Sophie Russell
Neil McGrath
Jack Glover
Gordon Mackenzie
Megan Russell
这个问卷放到/tmp 目录
上面文件的内容每一行代表一个人的名字,现在我们需要使用 Hive 分别获取到每个人的 First name 和 Last name。我们 Hive 表的建表语句如下:
CREATE TABLE `people`(
`fname` string,
`lname` string
)
我们现在将上面的数据导入到这个表中:
load data local inpath '/tmp/data.txt' into table mytable;
我们直接 select 出来的数据如下:
hive > select * from people;
OK
Sophie Russell NULL
Neil McGrath NULL
Jack Glover NULL
Gordon Mackenzie NULL
Megan Russell NULL
Time taken: 0.297 seconds, Fetched: 5 row(s)