Ravi, It looks like you are missing the ADD JAR ... command
Ruslan On Tue, Sep 4, 2012 at 6:45 PM, Edward Capriolo <edlinuxg...@gmail.com> wrote: > You could start with this: > > https://github.com/edwardcapriolo/hive-geoip > > On Tue, Sep 4, 2012 at 10:42 AM, Ravi Shetye <ravishe...@gmail.com> wrote: >> 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 -- Best Regards, Ruslan Al-Fakikh