将输入的文本经过md5加密输出,也可以通过利用md5密文判断两个text字符串是否相同
import org.apache.commons.codec.digest.DigestUtils;
import org.apache.hadoop.hive.ql.exec.Description;
import org.apache.hadoop.hive.ql.exec.UDF;
import org.apache.hadoop.io.Text;
import com.sun.tools.javadoc.Main;
@Description(name = "md5"
, value = "_FUNC_(string) - get md5 hash code by given input string."
, extended = "Example:\n > select _FUNC_(string) from src;")
public class UDFMd5 extends UDF {
private Text result = new Text();
public UDFMd5() {
}
public Text evaluate(Text text) {
if (text == null) {
return null;
}
result.set(DigestUtils.md5Hex((text.toString())));
return result;
}
//用main方法测试,如下
public static void main(String[] args) {
UDFMd5 udfMd5 = new UDFMd5();
System.out.println(udfMd5.evaluate(new Text("HelloWorld")));
System.out.println(udfMd5.evaluate(new Text("helloworld")));
}
}
输出结果如下:
68e109f0f40ca72a15e05cc22786f8e6
fc5e038d38a57032085441e7fe7010b0