我有一个包含每日记录的hive表。我想从工作日中选择记录。所以我使用下面的蜂巢查询来做到这一点。我使用QUBOLE API来执行此操作。
SELECT hour(pickup_time),
COUNT(passengerid)
FROM home_pickup
WHERE CAST(date_format(pickup_time, 'u') as INT) NOT IN (6,7)
GROUP BY hour(pickup_time)
然而,当我运行此代码时,它出现了Bellow错误。
SemanticException [错误10011]:第4:12行无效的函数' date_format'
不是Qbole对date_format函数的支持吗?有没有其他方法可以选择工作日?
答案 0 :(得分:1)
使用unix_timestamp(string date, string pattern)
将指定日期格式转换为1970-01-01传递的秒数。然后使用from_unixtime()
转换为给定格式:
演示:
hive> select cast(from_unixtime(unix_timestamp('2017-08-21 10:55:00'),'u') as int);
OK
1
您可以为非标准格式指定unix_timestamp的日期模式。 请参阅此处的文档:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF#LanguageManualUDF-DateFunctions