hadoop 在配置单元中将时间格式列划分为指定数量的离散间隔

c90pui9n  于 2022-12-22  发布在  Hadoop
关注(0)|答案(1)|浏览(112)

我的配置单元表中有一个列名为ViolationTime的列。它包含24小时HHmm的时间,例如1424。该表包含1000万行。我希望将其划分为6个离散的组来执行操作。
我尝试使用ntile,但是它会根据升序或降序划分值。我希望此列以离散间隔划分。

b09cbbtk

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(例如,从午夜开始的秒数),才能使其正常工作。

相关问题