需求
统计一个字符串在另一个字符串中出现的次数,比如:"a or b or c"中出现了多少个"or"
分析
Hive内置函数中并没有可以直接使用的函数,嵌套起来比较麻烦,所以需要自定义实现
代码
package udf;
import org.apache.hadoop.hive.ql.exec.UDFArgumentException;
import org.apache.hadoop.hive.ql.exec.UDFArgumentLengthException;
import org.apache.hadoop.hive.ql.metadata.HiveException;
import org.apache.hadoop.hive.ql.udf.generic.GenericUDF;
import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;
import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorFactory;
import org.apache.hadoop.hive.serde2.objectinspector.primitive.StringObjectInspector;
/**
* @ClassName: UDFCntStr
* @Description:
* @Author: xuezhouyi
* @Version: V1.0
**/
public class UDFCntStr extends GenericUDF {
StringObjectInspector line;
StringObjectInspector word