Я работаю на Datalake. У нас есть много таблиц с 70% столбцов, имеющих нулевые значения. Чтобы сэкономить место на диске, мы пытаемся создать Hive UDF, который будет принимать кортеж из соответствующей таблицы в качестве входных данных и возвращать карту в качестве выходных данных. Эта карта будет содержать только пары значений ключей для столбцов, которые не равны NULL для определенного кортежа.
map<String,Array<String>> output
В выходной карте мы хотели бы захватить имя столбца в качестве ключа и массив значений, тип данных в качестве значения.
У меня есть пара запросов.
- Есть ли способ получить имена столбцов из аргументов, передаваемых в UDF?
- Как передать / обработать строку / кортеж в этот UDF?
Кроме того, если кто-то уже видел / работал над чем-то вроде этого, пожалуйста, помогите мне в решении этого варианта использования.