刚接触到hive的时候想测试有些函数的功能,习惯性的用dual却报错,例如:
hive> select 1+1 from dual;
FAILED: SemanticException [Error 10001]: Line 1:16 Table not found 'dual'
但是我们可以自己构造一个类似于oracle的dual虚表。
1.首先创建一个lijie.txt,将X重定向到文件中
echo 'X' > lijie.txt
2.创建dual表在hive中
hive> create table lijie.dual (dummy string);
OK
Time taken: 0.341 seconds
3.将lijie.txt数据load到dual表中
hive> load data local inpath'/home/hadoop/lijie.txt' overwrite into table lijie.dual;
Loading data to table lijie.dual
Table lijie.dual stats: [numFiles=1, numRows=0, totalSize=2, rawDataSize=0]
OK
Time taken: 0.648 seconds
4.构建好dual虚表后测试
hive> select 1+1 from dual;
OK
2
Time taken: 0.156 seconds, Fetched: 1 row(s)
hive> select 'hello world' from dual;
OK
hello world
Time taken: 0.05 seconds, Fetched: 1 row(s