hive-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ravi Shetye <ravishe...@gmail.com>
Subject Hive UDF intialization
Date Tue, 04 Sep 2012 14:42:21 GMT
Hi
I am trying to register a java udf which looks like

public final class IP_2_GEO extends UDF {
String geo_file;
String geo_type;
public IP_2_GEO(String geo_file, String geo_type) {
this.geo_file = geo_file;
this.geo_type = geo_type;
}

public Text evaluate(final Text ip) {
//IP to geo conversion based on the level passed in 'geo_type' and by look
up in 'geo_file'

return new Text(geoString);
}
}

I had similar udf in pig and could register it by using
define ip_2_city com.udfs.common.IP_2_GEO('$geo_file', 'city');
define ip_2_country com.udfs.common.IP_2_GEO('$geo_file', 'country');

but in hive I am not able to register and  initialize the udf

hive> create temporary function ip_2_city as
"udfs.common.IP_2_GEO('/mnt/ravi/GeoLiteCity.dat','city')";
FAILED: Class udfs.common.IP_2_GEO('/mnt/ravi/GeoLiteCity.dat','city') not
found
FAILED: Execution Error, return code 1 from
org.apache.hadoop.hive.ql.exec.FunctionTask
hive> create temporary function ip_2_city as "udfs.common.IP_2_GEO()";
FAILED: Class udfs.common.IP_2_GEO() not found
FAILED: Execution Error, return code 1 from
org.apache.hadoop.hive.ql.exec.FunctionTask
hive> create temporary function ip_2_city as "udfs.common.IP_2_GEO";
OK
Time taken: 0.0080 seconds


1) Is there an alternate way to achieve what I expect from the command

hive> create temporary function ip_2_city as
"udfs.common.IP_2_GEO('/mnt/ravi/GeoLiteCity.dat','city')"; ?

2) What is the common practice of converting ip to City and Country in hive?
-- 
RAVI SHETYE

Mime
View raw message