Tôi muốn chạy các câu lệnh nhưHive có cái gì tương đương với DUAL không?
SELECT date_add('2008-12-31', 1) FROM DUAL
Liệu Hive (chạy trên Amazon EMR) có một cái gì đó tương tự?
Tôi muốn chạy các câu lệnh nhưHive có cái gì tương đương với DUAL không?
SELECT date_add('2008-12-31', 1) FROM DUAL
Liệu Hive (chạy trên Amazon EMR) có một cái gì đó tương tự?
Có một đẹp working solution (tốt, workaround) có sẵn trong các liên kết, nhưng nó là chậm như bạn có thể tưởng tượng.
Ý tưởng là bạn tạo một bảng có trường giả, tạo tệp văn bản có nội dung chỉ là 'X', tải văn bản đó vào bảng đó. Viola.
CREATE TABLE dual (dummy STRING);
load data local inpath '/path/to/textfile/dual.txt' overwrite into table dual;
SELECT date_add('2008-12-31', 1) from dual;
Giải pháp tốt nhất chưa kể đến tên bảng.
select 1+1;
Cung cấp kết quả 2. Nhưng kém Hive cần phải tạo bản đồ để tìm thấy điều này!
Để tạo một bảng như kép trong tổ ong, nơi có một cột và một hàng, bạn có thể làm như sau:
create table dual (x int);
insert into table dual select count(*)+1 as x from dual;
Kiểm tra một biểu thức:
select split('3,2,1','\\,') as my_new_array from dual;
Output:
["3","2","1"]
Giải pháp nhanh:
Chúng tôi có thể sử dụng bảng hiện có để đạt được chức năng kép bằng cách truy vấn sau.
SELECT date_add('2008-12-31', 1) FROM <Any Existing Table> LIMIT 1
Ví dụ:
SELECT CONCAT('kbdjj','56454') AS a, null AS b FROM tbl_name LIMIT 1
"giới hạn 1" trong truy vấn được sử dụng để tránh nhiều lần xuất hiện của giá trị quy định (kbdjj56454, null).
SELECT CONCAT ('kbdjj', '56454') AS a, null AS b FROM (chọn * từ tbl_name LIMIT 1) t. Truy vấn này sẽ hiệu quả hơn –
Hầu hết các cơ sở dữ liệu không cần một giả như DUAL, đó là Oracle. Vì vậy, whats câu hỏi thực sự của bạn, bạn có muốn làm ngày arithmetics? – schlenk
@schlenk Tôi chỉ muốn một cái gì đó để chạy các chức năng và làm gỡ lỗi từ, vì tôi không phải là rất quen thuộc với ngôn ngữ. – jbreed