Mi piacerebbe eseguire istruzioni comeHive ha qualcosa di equivalente a DUAL?
SELECT date_add('2008-12-31', 1) FROM DUAL
fa Hive (in esecuzione su Amazon EMR) hanno qualcosa di simile?
Mi piacerebbe eseguire istruzioni comeHive ha qualcosa di equivalente a DUAL?
SELECT date_add('2008-12-31', 1) FROM DUAL
fa Hive (in esecuzione su Amazon EMR) hanno qualcosa di simile?
Non ancora: https://issues.apache.org/jira/browse/HIVE-1558
C'è un bel working solution (beh, soluzione) disponibile nel link, ma è lento come si potrebbe immaginare.
L'idea è di creare una tabella con un campo fittizio, creare un file di testo il cui contenuto è solo "X", caricare quel testo in quella tabella. 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;
La migliore soluzione è non menzionare il nome della tabella.
select 1+1;
Fornisce il risultato 2. Ma il povero Hive ha bisogno di generare mappe ridotte per trovarlo!
Non ancora: hive> selezionare 1 + 1; FAILED: ParseException riga 1:14 ingresso non corrispondente '
Vecchio post ma vale la pena menzionare che questo è supportato nella versione 0.13 – Aaron
questa è la più semplice, e funziona in scenari in cui uno non ha i diritti per creare una tabella. –
Per creare un doppio tavolo come in alveare in cui v'è una colonna e una riga è possibile effettuare le seguenti operazioni:
create table dual (x int);
insert into table dual select count(*)+1 as x from dual;
prova un'espressione:
select split('3,2,1','\\,') as my_new_array from dual;
uscita:
["3","2","1"]
Soluzione rapida:
Possiamo utilizzare la tabella esistente per ottenere la doppia funzionalità seguendo la query.
SELECT date_add('2008-12-31', 1) FROM <Any Existing Table> LIMIT 1
Ad esempio:
SELECT CONCAT('kbdjj','56454') AS a, null AS b FROM tbl_name LIMIT 1
"limite 1" query viene utilizzata per evitare più occorrenze di valori specificati (kbdjj56454, NULL).
SELECT CONCAT ('kbdjj', '56454') AS a, null AS b FROM (selezionare * da tbl_name LIMIT 1) t. Questa query sarà più efficiente –
La maggior parte dei database non ha bisogno di uno pseudo come DUAL, solo Oracle. Allora, qual è la tua vera domanda, vuoi fare un'aritmetica data? – schlenk
@schlenk Voglio solo qualcosa per eseguire le funzioni e fare il debug, dal momento che non ho molta familiarità con la lingua. – jbreed