我有一个包含列的表,可以将两个可能的数据变量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?