gpt4 book ai didi

date - HIVE - 按日期功能分组

转载 作者:可可西里 更新时间:2023-11-01 14:14:39 25 4
gpt4 key购买 nike

谁能告诉我为什么我没有得到结果集中每个 f0、MONTH、DAY、HOUR、MINUTE 组的计数?

结果集:

result set

查询:

SELECT t.f0, MONTH(TO_DATE(Hex2Dec(t.f2))), DAY(TO_DATE(Hex2Dec(t.f2))), HOUR(TO_DATE(Hex2Dec(t.f2))), MINUTE(TO_DATE(Hex2Dec(t.f2))), COUNT(DISTINCT t.f1)  
FROM table t
WHERE (t.f0 = 1 OR t.f0 = 2)
AND (t.f3 >= '2013-02-06' AND t.f3 < '2013-02-15')
AND (Hex2Dec(t.f2) >= 1360195200 AND Hex2Dec(t.f2) < 1360800000)
AND *EXTRA CONDITIONS*
GROUP BY t.f0, MONTH(TO_DATE(Hex2Dec(t.f2))), DAY(TO_DATE(Hex2Dec(t.f2))), HOUR(TO_DATE(Hex2Dec(t.f2))), MINUTE(TO_DATE(Hex2Dec(t.f2)))

架构:

f0 INT(分区列)
f1 整数
f2 字符串
f3 STRING(分区列)
f4 字符串
f5 字符串
f6 字符串
f7 map <STRING,STRING>

*f2 是十六进制格式的 unix 时间戳

最佳答案

这可能是因为 to_date 在 unix 时间应用时返回 null。
根据Hive manual :

to_date(string timestamp):
Returns the date part of a timestamp string: to_date("1970-01-01 00:00:00") = "1970-01-01"

改用 from_unixtime 获取正确的日期部分。

注意:
我假设 Hex2Dec UDF 取自 HIVE-1545 的核心库

关于date - HIVE - 按日期功能分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14902827/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com