您的位置:首页 > 其它

hive用户自定义函数

2011-08-02 17:01 218 查看
--查看系统自带函数

hive> show functions;

OK

!

!=

%

&

*

+

-

/

<

<=

<>

=

==

>

>=

^

abs

acos

and

array

array_contains

ascii

asin

atan

avg

bigint

bin

boolean

case

ceil

ceiling

coalesce

collect_set

concat

concat_ws

context_ngrams

conv

corr

cos

count

covar_pop

covar_samp

create_union

date_add

date_sub

datediff

day

dayofmonth

degrees

div

double

e

elt

exp

explode

field

find_in_set

float

floor

from_unixtime

get_json_object

hash

hex

histogram_numeric

hour

if

in

index

instr

int

isnotnull

isnull

json_tuple

lcase

length

like

ln

locate

log

log10

log2

lower

lpad

ltrim

map

max

min

minute

month

negative

ngrams

not

or

parse_url

parse_url_tuple

percentile

percentile_approx

pi

pmod

positive

pow

power

radians

rand

reflect

regexp

regexp_extract

regexp_replace

repeat

reverse

rlike

round

rpad

rtrim

second

sentences

sign

sin

size

smallint

space

split

sqrt

std

stddev

stddev_pop

stddev_samp

str_to_map

string

struct

substr

substring

sum

tan

tinyint

to_date

trim

ucase

unhex

unix_timestamp

upper

var_pop

var_samp

variance

weekofyear

when

xpath

xpath_boolean

xpath_double

xpath_float

xpath_int

xpath_long

xpath_number

xpath_short

xpath_string

year

|

~

Time taken: 0.134 seconds

--查看函数描述信息

hive> describe function abs;

OK

abs(x) - returns the absolute value of x

Time taken: 0.214 seconds

hive> describe function substring;

OK

substring(str, pos[, len]) - returns the substring of str that starts at pos and is of length len

Time taken: 0.084 seconds

package com.lpxuan.hive.udf;

import org.apache.hadoop.hive.ql.exec.UDF;

import org.apache.hadoop.io.Text;

public class CompanyLength extends UDF{

public int getCompanyLength(String company_name){

if(company_name == null) {

return -1;

}

else return company_name.length();

}

}

lpxuan@hadoop1:~/mycode/com/lpxuan/hive/udf$ javac CompanyLength.java

lpxuan@hadoop1:~/mycode/com/lpxuan/hive/udf$ ls

CompanyLength.class CompanyLength.java

lpxuan@hadoop1:~/mycode/com/lpxuan/hive/udf$ jar cvf CompanyLength.jar CompanyLength.class

标明清单(manifest)

增加:CompanyLength.class(读入= 392) (写出= 277)(压缩了 29%)

lpxuan@hadoop1:~/mycode/com/lpxuan/hive/udf$ ls

CompanyLength.class CompanyLength.jar CompanyLength.java

root@hadoop1:/home/lpxuan/mycode/com/lpxuan/hive/udf# mv CompanyLength.jar /opt/hadoop/mytest/

hive> add jar /opt/hadoop/mytest/CompanyLength.jar

/hadoop/mytest/CompanyLength.jar to class path

Added resource: /opt/hadoop/mytest/CompanyLength.jar

create temporary function company_length as 'com.lpxuan.hive.udf.CompanyLength.getCompanyLength';
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: