Как получить доступ к схеме таблицы из общего UDF - PullRequest
0 голосов
/ 08 мая 2018

У меня есть таблица со столбцами, которые могут иметь два возможных варианта данных 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

В результате я хочу получить представление, которое будет принимать указанную пользователем переменную куста, например: set name = "Ann", и в результате для столбца, равного переменной, будет «согласовано» или «не согласовано». И вывод из вида должен выглядеть так:

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

Итак, я знаю, что могу получить доступ к переменным Hive с помощью метода конфигурации GenericUDF, например:

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

В настоящее время я передаю все поля в GenericUDf в виде массива (поскольку количество столбцов в таблице может увеличиться).

SELECT question, GenericUDF(array(*));

Есть ли способ доступа к схеме таблицы из GenericUDF или, возможно, можно передать ее в GUDF в качестве параметра?

...