UDF2<String, String, Boolean> contains = new UDF2<String, String, Boolean>() {
private static final long serialVersionUID = -5239951370238629896L;
@Override
public Boolean call(String t1, String t2) throws Exception {
Pattern p1 = Pattern.compile(t1);
Pattern p2 = Pattern.compile(t2);
return p1.toString().contains(p2.toString());
}
};
spark.udf().register("contains", contains, DataTypes.BooleanType);
在上面找到其他字符串中的關鍵,如果發現它return true
但它返回的t2
也子字符串。如何找到子字符串使用正則表達式
實際輸出:
t1 Hello world
t2:Hello
t2 :wo
t2:rl
t2:Hello world
t1 returns all this 3 but i want only hello or world key
我試試這個
Pattern p1 = Pattern.compile("^"+t1+"$");
Pattern p2 = Pattern.compile("^"+t2+"$");
return p1.toString().contains(p2.toString());
但如果t2
包含Helow world
我想Hello OR world
任何一個出現時,它return True
能否請你幫我寫Reguler它的工作表達式