gpt4 book ai didi

hadoop - 具有字符串输入/输出的Hive/Impala UDF

转载 作者:行者123 更新时间:2023-12-02 21:14:46 24 4
gpt4 key购买 nike

我正在研究Impala / Hive UDF示例,例如:

public class FuzzyEqualsUdf extends UDF {
public FuzzyEqualsUdf() {
}

public BooleanWritable evaluate(DoubleWritable x, DoubleWritable y) {
double EPSILON = 0.000001f;
if (x == null || y == null)
return null;
return new BooleanWritable(Math.abs(x.get() - y.get()) < EPSILON);
}
}

然后,我尝试创建自己的UDF,该UDF以String作为输入,以String作为输出。理想情况下,它应该看起来像:
public class MyUdf extends UDF {
public MyUdf() {
}

public StringWritable evaluate(StringWritable x) {
String[] y = x.split(",");
String z = y[0] + "|" + y[1]
return new StringWritable(z);
}
}

但是,我的问题是没有 StringWritable类!我只看到:
import org.apache.hadoop.hive.serde2.io.ByteWritable;
import org.apache.hadoop.hive.serde2.io.DoubleWritable;
import org.apache.hadoop.hive.serde2.io.ShortWritable;
import org.apache.hadoop.hive.serde2.io.TimestampWritable;

如何在没有StringWritable类的情况下使用字符串类型的输入/输出创建udf?谢谢!

最佳答案

毛 bean 。可能可以使用org.apache.hadoop.io.Text类。

您可以引用Hive的内置功能之一。我指的是Trim,它接受字符串并输出字符串

https://github.com/apache/hive/blob/master/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFBaseTrim.java

关于hadoop - 具有字符串输入/输出的Hive/Impala UDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39114112/

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