HiveQL: utilizzo dei risultati della query come variabili

in Hive mi piacerebbe estrarre dynamicmente le informazioni da una tabella, salvarla in una variabile e usarla ulteriormente. Considera il seguente esempio, in cui recupero il massimo della colonna var e voglio usarlo come condizione nella query successiva.

set maximo=select max(var) from table; select * from table where var=${hiveconf:maximo} 

Non funziona, anche se

 set maximo=select max(var) from table; ${hiveconf:maximo} 

mi mostra il risultato voluto

fare:

 select '${hiveconf:maximo}' 

     "select max(var) from table" 

    anche se.

    Migliore

    L’hive sostituisce le variabili così come sono e non le esegue. Usa lo script wrapper di shell per ottenere risultati in variabili e passali allo script Hive.

     maximo=$(hive -e "set hive.cli.print.header=false; select max(var) from table;") hive -hiveconf "maximo"="$maximo" -f your_hive_script.hql 

    E dopo questo all’interno del tuo script puoi usare select '${hiveconf:maximo}'