gpt4 book ai didi

java - Hive UDF 将二进制(utf8)转换为 Base64 字符串

转载 作者:行者123 更新时间:2023-11-29 05:01:12 24 4
gpt4 key购买 nike

我有一个存储在 parquet 文件中的二进制 thrift 字段。 Parquet 将其写为二进制 (UTF8),我想使用 Hive UDF 将其转换为 Base64 字符串。它应该是非常基本的,但不知道为什么我的代码不起作用,这是我尝试过的,

 public class Base64Encode extends UDF {
public Text evaluate(Text bin) {
if (bin != null) {
String encoded = new String(Base64.getEncoder().encode(bin.getBytes()));
if (encoded != null) {
return new Text(encoded);
}
}
return null;
}

}

最佳答案

您不需要为此任务创建自己的 UDF。已经定义了几个。在您的问题中,您说 Parquet 将数据存储为二进制文件,但您的示例代码有一个文本类型的参数。

如果您的参数已经是二进制的,只需使用:

base64(bin_field)

否则,如果它是文本格式,并且您想将其转换为二进制 UTF-8,然后再转换为 base 64,则合并:

base64(encode(text_field, 'UTF-8'))

关于java - Hive UDF 将二进制(utf8)转换为 Base64 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32042864/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com