Опитвам се да задам променлива Hive с изхода на UDF функция, така че мога да използвам тази стойност в INSERT INTO myTable
по-късно в моя .hql скрипт.
Това е DDL на myTable
:
CREATE TABLE myTable(
CreationTimestamp TIMESTAMP,
Tablename CHAR(50),
LastExtractedTimestamp TIMESTAMP,
OozieJobID CHAR(40)
);
Следното не работи:
set hiveconf:ct=select current_timestamp;
INSERT INTO mytable VALUES ('${hiveconf:ct}','test','2015-12-11 11:25:03.341','testID');
а също и този не работи (без кавички):
set hiveconf:ct=select current_timestamp;
INSERT INTO myTable VALUES (${hiveconf:ct}, 'test','2015-12-11 11:25:03.341','testID');
Резултатът е, че получавам вмъкнат ред в моята таблица с нулева стойност на мястото на стойността на моята променлива:
нулев тест 2015-12-11 11:25:03.341 testID
Така че в момента използвам следното решение:
INSERT INTO myTable select * from (select current_timestamp, 'test','2015-12-11 11:25:03.341','testID') as dummy;
Имате ли някакво предложение или по-добър начин да постигнете това?
Благодаря ;-)
.hql
скрипт, защо не изпълните команда на обвивката и вместо това да изпълните това?! <command>
го прави - вижте сайтове .google.com/site/hadoopandhive/home/ за основен пример. - person Ben Watson   schedule 11.12.2015