Hive 计算配置单元表中复合字段的大小
在我的配置单元表(按日期分区)中,有一个复合(嵌套)字段。我想通过对这个字段的字节表示求和来计算它的大小,然后按日期分组并对字节求和。如何在hive中实现这一点?我知道如何计算复杂对象的字符串表示的大小。也许这将帮助您了解至少如何估计字节大小 使用transform,我们可以获得字符串表示并检查长度。如果需要UTF-8字符长度和UTF-8八位字节数Hive 计算配置单元表中复合字段的大小,hive,archive,Hive,Archive,在我的配置单元表(按日期分区)中,有一个复合(嵌套)字段。我想通过对这个字段的字节表示求和来计算它的大小,然后按日期分组并对字节求和。如何在hive中实现这一点?我知道如何计算复杂对象的字符串表示的大小。也许这将帮助您了解至少如何估计字节大小 使用transform,我们可以获得字符串表示并检查长度。如果需要UTF-8字符长度和UTF-8八位字节数 with data as ( select array(named_struct('key','value', 'key2', 'тест')) a
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