問題

結果セットの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 INT
または F2 STRING
または F3 STRING (パーティション列)
または F4 STRING
または F5 STRING
または F6 文字列
または F7 MAP <STRING,STRING>

* f2はHexadecimal形式のUNIXタイムスタンプです

  ベストアンサー

これは、to_dateがUNIX時間に適用されたときにnullを返すためかもしれません。
または Hiveマニュアルによると:

to_date(文字列タイムスタンプ):
タイムスタンプの日付部分を返す 文字列:to_date( "1970-01-01 00:00:00")= "1970-01-01"

代わりにfrom_unixtimeを使用して正しい日付部分を取得します。

注:
または 私はHex2Dec UDFが HIVE-1545 のコアライブラリから取られたと仮定します

  同じタグがついた質問を見る

datehadoopgroup-byhive