我的配置单元表中有一个列名为ViolationTime的列。它包含24小时HHmm的时间,例如1424。该表包含1000万行。我希望将其划分为6个离散的组来执行操作。我尝试使用ntile,但是它会根据升序或降序划分值。我希望此列以离散间隔划分。
ViolationTime
HHmm
ntile
b09cbbtk1#
在Hive 3.0及更高版本中,width_bucket()函数执行以下操作:返回类型:内部姓名(签名):bucket宽度(数值表达式,数值最小值,数值最大值,INT数值bucket)描述:通过将exprMap到第i个大小相等的存储桶,返回0到num_buckets +1之间的整数。存储桶是通过将[min_value,max_value]划分为大小相等的区域而生成的。如果expr〈min_value,则返回1,如果expr〉max_value,则返回num_buckets +1。尽管您可能会发现需要先将HHmm时间值转换为INT(例如,从午夜开始的秒数),才能使其正常工作。
width_bucket()
1条答案
按热度按时间b09cbbtk1#
在Hive 3.0及更高版本中,
width_bucket()
函数执行以下操作:返回类型:内部
姓名(签名):bucket宽度(数值表达式,数值最小值,数值最大值,INT数值bucket)
描述:通过将exprMap到第i个大小相等的存储桶,返回0到num_buckets +1之间的整数。存储桶是通过将[min_value,max_value]划分为大小相等的区域而生成的。如果expr〈min_value,则返回1,如果expr〉max_value,则返回num_buckets +1。
尽管您可能会发现需要先将
HHmm
时间值转换为INT(例如,从午夜开始的秒数),才能使其正常工作。