1、需求
用逗号分隔的细粒度子串(match_str )与粗粒度字符串(source_str)匹配,如果粗粒度子串和细粒度子串的交集,交集按照中文排序,形成以逗号分隔的字符串返回
2、UDF函数:MatchString
pom.xml添加依赖如下:
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-hive_2.11</artifactId>
<version>1.2.1</version>
</dependency>
import org.apache.hadoop.hive.ql.exec.UDF;
import java.util.ArrayList;
import java.util.Collections;
public class StringMatch extends UDF {
public String evaluate(String sourceStr, String matchStr){
// 先用逗号分隔
String[] list = matchStr.split(",");
ArrayList<String> array = new ArrayList<String>();
StringBuffer buf = new StringBuffer();
for(String str: list){
// 如果粗粒度字符串包含细粒度分隔的子串,则数组添加子串