dual表的概念來自oracle,數據庫建立時即與數據字典一起初始化,該表只有一個varchar2類型名爲dummy的字段,表數據只有一行“X”,用來查詢一些系統信息,
如
select sysdate from dual;
select user from dual;
select seq.nextval from dual
等。
爲了能在hive中測試一些時間、數學、聚合函數,可以仿照oracle創建dual表。
hive>create table dual (dummy String);
創建一個僅包含X的文件
echo X > /home/hadoop/dual.txt
hive>load data local inpath '/home/hadoop/dual.txt' overwrite into table dual;
即可使用。如:
hive> select round(3.1415,2) from dual;
OK
3.14
Time taken: 0.617 seconds, Fetched: 1 row(s)
hive> select rand() from dual;
OK
0.539591509499207
Time taken: 0.138 seconds, Fetched: 1 row(s)
hive> select rand(1) from dual;
OK
0.7308781907032909
Time taken: 0.153 seconds, Fetched: 1 row(s)
hive> select rand(1) from dual;
OK
0.7308781907032909
Time taken: 0.183 seconds, Fetched: 1 row(s)
hive> select rand(1) from dual;
OK
0.7308781907032909
Time taken: 2.161 seconds, Fetched: 1 row(s)
hive> select rand() from dual;
OK
0.663918139786933
Time taken: 0.143 seconds, Fetched: 1 row(s)