¿Cómo podemos probar las funciones de la colmena sin hacer referencia a una tabla?

StackOverflow https://stackoverflow.com//questions/21008398

  •  21-12-2019
  •  | 
  •  

Pregunta

Quería entender el UDF WeekofEar y cómo comienza la primera semana.Tuve que golpear artísticamente una mesa y correr la consulta .Quería no golpear la mesa y calcular los valores.En segundo lugar, ¿puedo mirar el código fuente UDF?

SELECT weekofyear
('12-31-2013')
from a;

¿Fue útil?

Solución

No necesita la tabla para probar UDF desde Hive 0.13.0.

Ver este jira: Hive-178 Seleccionar sin debe asumir una mesa de una filasin columnas

prueba:

hive> SELECT weekofyear('12-31-2013');

Resultado:

OK
1
Time taken: 0.912 seconds, Fetched: 1 row(s)

El código fuente (rama maestra) está aquí: UDFWEEKOFYEAR.JAVA

Otros consejos

Si usted es desarrollador de Java, puede escribir casos de prueba JUII, probar los UDF.

Puede buscar el código fuente de todas las funciones incorporadas de Hive en grepcode .

http://grepcode.com/file/repo1.maven.org/maven2/org.apache.hive/hive-exec/1.0.0/org/apache/hadoop/Hive / QL / UDF / UDFWEEKOFYEAR.JAVA

No creo que la ejecución de UDF sin golpear las tablas es posible en la colmena. Incluso los desarrolladores de Hive golpea la mesa en pruebas de UDF.

Para hacer que la consulta sea más rápida, puede:

  1. Crea una tabla con una sola fila y ejecuta las consultas UDF en esta tabla
  2. ejecutar la colmena en modo local.
  3. Código fuente de Hive se encuentra aquí . La fuente UDFWeekOfYear es aquí .

Debe poder usar cualquier tabla con al menos una fila para probar las funciones. Aquí hay un ejemplo utilizando algunas funciones personalizadas que realizan el trabajo y salgan un resultado de una cadena.

Reemplace anytable con una tabla real.

Seleccione ST_ASTTXT (St_Intersection (ST_POLYGON (2,0, 2,3, 3,0), ST_POLYGON (1,1, 4,1, 4,4, 1,4))) desde anytable límite 1;

Resuluts Hive:

OK

Polígono ((2 1, 2.6666666666666665 1, 2 3, 2 1))

Tiempo tomado: 0.191 segundos, Fetched: 1 fila (s)

Hive>

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top