是否可以在Hive中执行按位组功能?

时间:2017-08-17 10:10:16

标签: hadoop hive hiveql

如何在类似于mysql的配置单元查询上执行按位OR。 例如,在mysql中,我们按位执行或执行:

SELECT user_name, BIT_OR(file_permission) FROM user_permission GROUP BY user_name

1 个答案:

答案 0 :(得分:0)

有一个Bitwise or operator in hive

  

A | B

     

操作数类型:所有数字类型

     

给出A和B的按位OR结果。结果的类型与操作数类型的公共父类型(在类型层次结构中)相同。

但是,从您的代码示例中,您似乎需要一个聚合的Bitwise或函数(UDAF)。这种聚合功能在蜂巢中不易存在。您必须实现自定义UDAF。

效率较低但更简单的另一个选项:您可以使用collect_list并实现一个简单的UDF,它可以按位执行或对数组的所有元素执行。