由于Hive不会公开双表,因此您可能需要创建一个单行表,并将该表用于此类查询。
然后,您将能够执行查询,例如
select unix_timestamp() from hive_dual;
一种解决方法是使用带有LIMIT 1或TABLESAMPLE子句的任何现有表,但是根据表的大小,它的效率会降低。
# any_existing_table contains 10 lines# hive_dual contains 1 lineselect unix_timestamp() from any_existing_table LIMIT 1; # Time taken: 17.492 seconds, Fetched: 1 row(s)select unix_timestamp() from any_existing_table TABLESAMPLE(1 ROWS);# Time taken: 15.273 seconds, Fetched: 1 row(s)select unix_timestamp() from hive_dual ;# Time taken: 16.144 seconds, Fetched: 1 row(s)select unix_timestamp() from hive_dual LIMIT 1; # Time taken: 14.086 seconds, Fetched: 1 row(s)select unix_timestamp() from hive_dual TABLESAMPLE(1 ROWS);# Time taken: 16.148 seconds, Fetched: 1 row(s)
更新
无需传递任何表名和限制语句。Hive
select unix_timestamp()现在支持。



