Я знаю, как рассчитать размер строкового представления сложного объекта. Возможно, это поможет вам хотя бы понять, как оценивать размер в байтах.
Используя преобразование, мы можем получить строковое представление и проверить длину. Hive 2.3 имеет char_length и octet_length , если вам нужна длина символа UTF-8 и количество октетов UTF-8.
with data as (
select array(named_struct('key','value', 'key2', 'тест')) as complex_object
)
select complex_object_str, length(complex_object_str) ascii_length, length(cast(complex_object_str as binary)) binary_length
from
(
select transform(complex_object) using '/bin/cat' as complex_object_str from data
)s;
Результат:
complex_object_str ascii_length binary_length
[{"key":"value","key2":"тест"}] 31 35