hive hiveql

HiveQL: uso de resultados de consultas como variables



(1)

en Hive Me gustaría extraer dinámicamente información de una tabla, guardarla en una variable y usarla más. Considere el siguiente ejemplo, donde recupero el máximo de la columna var y quiero usarlo como condición en la consulta posterior.

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

No funciona, aunque

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

me muestra el resultado deseado.

Obra:

select ''${hiveconf:maximo}''

da

"select max(var) from table"

aunque.

Mejor


Hive sustituye las variables tal cual y no las ejecuta. Use el script de envoltura de shell para obtener el resultado en variable y páselo a su script de Hive.

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

Y después de esto dentro de su script, puede usar select ''${hiveconf:maximo}''