这期内容当中小编将会给大家带来有关 hive扩展函数开发的实现方法,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
在内蒙古等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都网站制作、成都网站建设、外贸营销网站建设 网站设计制作按需求定制制作,公司网站建设,企业网站建设,高端网站设计,营销型网站建设,外贸营销网站建设,内蒙古网站建设费用合理。
提供以下两种实现方式:a继承org.apache.hadoop.hive.ql.exec.UDF类
代码包为:packageorg.apache.hadoop.hive.ql.udf
实现evaluate方法,根据输入参数和返回参数类型,系统自动转换到匹配的方法实现上。
例如:
• UDFTestLength.java:
importorg.apache.hadoop.io.IntWritable;
importorg.apache.hadoop.io.Text;
public classUDFTestLength extends UDF {
IntWritable result = new IntWritable();
public IntWritable evaluate(Text s) {
if (s== null) {
return null;
}
result.set(countUDF8Characters(s));
return result;
}
}
b继承org.apache.hadoop.hive.ql.udf.generic.GenericUDF类
代码包为:packageorg.apache.hadoop.hive.ql.udf. generic
实现initialize ,evaluate, getDisplayString方法
例如:
@Description(name = "url_to_map", value = "_FUNC_(text,delimiter1, delimiter2) - "
public class GenericUDFUrlToMap extends GenericUDF{
HashMap
@Override
public ObjectInspector initialize(ObjectInspector[]arguments)
throwsUDFArgumentException {
… …
returnObjectInspectorFactory.getStandardMapObjectInspector(
PrimitiveObjectInspectorFactory.javaStringObjectInspector,
PrimitiveObjectInspectorFactory.javaStringObjectInspector);
}
@Override
public Object evaluate(DeferredObject[]arguments) throws HiveException {
ret.clear();
… …
return ret;
}
@Override
public String getDisplayString(String[]children) {
StringBuildersb = new StringBuilder();
sb.append("url_to_map(");
assert (children.length <= 3);
boolean firstChild = true;
for (String child :children) {
if (firstChild) {
firstChild= false;
}else {
sb.append(",");
}
sb.append(child);
}
sb.append(")");
return sb.toString();
}
}
上述就是小编为大家分享的 hive扩展函数开发的实现方法了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注创新互联行业资讯频道。
售后响应及时
7×24小时客服热线数据备份
更安全、更高效、更稳定价格公道精准
项目经理精准报价不弄虚作假合作无风险
重合同讲信誉,无效全额退款