我用 Java 编写了 Hive UDF 来解码信息,为此我们使用了下面的代码。
public Text evaluate(Text str) throws Exception {
byte[] keyBytes = (SALT + KEY).getBytes("UTF8");
MessageDigest messageDigest = MessageDigest.getInstance("SHA-1");
keyBytes = messageDigest.digest(keyBytes);
keyBytes = java.util.Arrays.copyOf(keyBytes, 16);
SecretKeySpec key = new SecretKeySpec(keyBytes, "AES");
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.ENCRYPT_MODE, key);
String decryptedString = Base64.encodeBase64String(cipher.doFinal(str.getBytes()));
return new Text(decryptedString);
}
下面的查询使用 UDF 成功执行。
下面是我正在执行 UDF 的性别表
当我使用 UDF 对性别表执行查询时,我得到了空行和新行。请找到以下带有突出显示区域的屏幕截图。
我只期待一行的结果。请帮助并让我知道我错在哪里。