如何从Generic UDF访问表的模式

时间:2018-05-07 22:22:35

标签: hadoop hive user-defined-functions

我有一个包含列的表,可以将两个可能的数据变量1或0作为字段值。如下例所示:

question    |John   |Ann    |Bob    |Melisa
first       |1      |0      |1      |0
second      |0      |0      |1      |0
third       |1      |1      |1      |0
fourth      |1      |0      |1      |1

因此,我希望有一个视图,它将采用用户指定的hive变量,如:set name = "Ann"并生成,对于一个等于变量的列,'同意'或者不同意'结果是。视图的输出应如下所示:

question    |Ann    
first       |disagreed      
second      |disagreed      
third       |agreed 
fought      |disagreed

所以,我知道我可以通过GenericUDF的配置方法访问Hive变量,如:

public void configure(MapredContext mapredContext) {
  String name = mapredContext.getJobConf().get("name");
}

目前,我将所有字段作为数组传递给GenericUDf(因为表中的列数可能会增加)。

SELECT question, GenericUDF(array(*));

是否存在如何从GenericUDF访问表模式的方法,或者可以将其作为参数传递给GUDF?

0 个答案:

没有答案