环境:阿里云MaxCompute
阿里云MaxCompute的UDAF函数和hive的UDAF函数还是有所差别的。
需求:将拼接好的字段再次拼接,并将拼接好的结果去重,比如:北京,上海,天津;江西,湖北,湖南,北京;这两个字符串重新拼接后的结果应该为:北京,上海,天津,江西,湖北,湖南
这里我是用到了阿里云的MaxCompute Studio插件,关于该插件的下载和使用以及函数的发布大家可以参考官网https://helpcdn.aliyun.com/document_detail/27811.html?spm=a2c4g.11186623.6.601.64131f854SbjQa
import com.aliyun.odps.io.Text;
import com.aliyun.odps.io.Writable;
import com.aliyun.odps.udf.ExecutionContext;
import com.aliyun.odps.udf.UDFException;
import com.aliyun.odps.udf.Aggregator;
import com.aliyun.odps.udf.annotation.Resolve;
import java.util.*;
// TODO define input and output types, e.g. "double->double".
/**
*
* @author Liam
* @description 将hscode的多个字符串重新聚合去重拼接
* @date 2021-02-26 17:05:08
**/
@Resolve({
"string->string"}