empleado:
Los datos de la tabla

Quiero recuperar registros de año=2016 mediante la ejecución de la colmena ejemplo de secuencia de comandos.hql.

use octdb;
select * from '${hiveconf:table}' where year = '${hiveconf:year}';

[[email protected] ~]$ hive -hiveconf table='employee', year=2016 -f sample.hql

Pero estoy recibiendo el error NoViableAltException([email protected][])…….

InformationsquelleAutor Riyaz Khan | 2017-10-09

3 Comentarios

  1. 8

    Que usted necesita para utilizar el --hiveconf opción dos veces:

    hive --hiveconf table=employee --hiveconf year=2016 -f sample.hql
    • Gracias por la solución, pero yo todavía estoy recibiendo el mismo error.
    • Error: NoViableAltException([email protected][]) ERROR: ParseException línea 2:14 no puede reconocer de entrada cerca de empleado»,» ‘donde’ ‘año’ en unirse a la fuente de ADVERTIR: El método de la clase org.apache.commons.la tala de árboles.impl.SLF4JLogFactory#release() se invoca. ADVERTENCIA: por Favor, consulte slf4j.org/codes.html#release para obtener una explicación.
    • Usted todavía está utilizando una coma después de employee; quitar. No hay ninguna tabla denominada employee,.
    • Eliminado pero sigue el mismo error 🙁 Múltiples parámetro ahora me puede pasar como a la colmena hiveconf año=2016 -hiveconf id=1 -f de la muestra.hql Pero, ¿cómo pasar de la TABLA nombre demasiado mientras se ejecuta .hql script
  2. 0

    Haciendo R&D encontrar la respuesta correcta, ${hiveconf:tabla} debe definir en la secuencia de comandos sin ‘ ‘.
    de la muestra.hql:-

    use ${hiveconf:database};
    
       select * from ${hiveconf:table} where year = ${hiveconf:year};

    Ejemplo en ejecución.hql

    [[email protected] shell]$ hive -hiveconf database=octdb -hiveconf table=employee -hiveconf year=2016 -f sample.hql

    Registro inicializa mediante la configuración en el archivo:/etc/colmena/conf.dist/colmena-log4j.propiedades
    OK

    Time taken: 1.484 seconds
    OK
    1       A       2016
    2       B       2016
    4       D       2016

    Tiempo necesario: 4.423 segundos, Recuperado: 3 de fila(s)

  3. 0

    Pasar variables también se puede lograr a través de «hivevar», junto con «hiveconf».

    Aquí está la diferencia:

    La hiveconf espacio de nombres se añadió y (–hiveconf) debe ser utilizado para establecer la Colmena valores de configuración.

    La hivevar espacio de nombres se añadió y (–hivevar) debe ser utilizado para definir las variables de usuario.

    Utilizando hiveconf también funcionará, pero no es lo recomendado para la sustitución de variables como hivevar es explícitamente creado para ese propósito.

    set hivevar:YEAR=2018;
    SELECT * from table where year=${YEAR};
    
    hive --hiveconf var='hello world' -e '!echo ${hiveconf:var};'
    -- this will print: hello world

Dejar respuesta

Please enter your comment!
Please enter your name here