计算配置单元表中复合字段的大小

gajydyqb  于 2021-06-27  发布在  Hive
关注(0)|答案(1)|浏览(339)

在我的配置单元表(按日期分区)中,有一个复合(嵌套)字段。我想通过对这个字段的字节表示求和来计算它的大小,然后按日期分组并对字节求和。我怎么能在Hive里做到呢?

thigvfpy

thigvfpy1#

我知道如何计算复杂对象的字符串表示的大小。也许这将帮助你得到一些想法,至少如何估计字节大小。
利用变换,我们可以得到字符串表示和检查长度。如果需要utf-8字符长度和utf-8八位字节数,hive2.3有字符长度和八位字节长度。

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

相关问题