我有一个hive表,其中一列是一个字符串数组。我还有一组操作单个字符串的自定义UDF。我想让hive在数组中的每个元素上执行我的自定义UDF,然后将结果作为修改后的数组返回。
这似乎是一个简单的要求,但我无法找到一个简单的解决方案。我发现了两种可能性,其中没有一种是简单的:
有没有简单的方法可以做到这一点?
答案 0 :(得分:1)
如果没有更多的自定义UDF代码,或者正如您所说,需要更多MR作业,我无法做到这一点。
但我建议可能的第三个选项 - 编写一个带有两个参数的GenericUDF:一个数组和另一个UDF的类名。通过反射实例化并调用UDF,将其传递给数组中的所有内容,然后返回结果数组。这可能有点难以写,但至少你不必重写所有现有的UDF,正如你所提到的那样。