¿Cómo seleccionar datos de la colmena con una partición específica?

todo el mundo. aquí están las interacciones con la colmena:

hive> show partitions TABLENAME
pt=2012.07.28.08/is_complete=1
pt=2012.07.28.09/is_complete=1
pt=2012.07.28.10/is_complete=1
pt=2012.07.28.11/is_complete=1
hive> select * from TABLENAME where pt='2012.07.28.10/is_complete=1' limit 1;
OK
Time taken: 2.807 seconds
hive> select * from TABLENAME where pt='2012.07.28.10' limit 1;
OK
61806fd3-5535-42a1-9ca5-91676d0e783f    1.160.243.215.1343401203879.1   2012-07-28 23:36:37
Time taken: 3.8 seconds
hive>

Mi pregunta es ¿por qué la primera selección no puede obtener los datos?

preguntado el 28 de julio de 12 a las 11:07

2 Respuestas

"is_complete" es una columna como "pt", por lo que la consulta correcta es:

select * from TABLENAME where pt='2012.07.28.10' and is_complete='1' limit 1;

Respondido 28 Jul 12, 11:07

Si está utilizando Ambari, puede consultar de la siguiente manera

select * from TABLE NAME WHERE PARTITION NAME and AND ANOTHER PARTITION NAME LIMIT 10

Aquí las particiones están asociadas con la tabla, por lo que consultamos directamente considerándolas como una tabla (analogía simple). Aquí el símbolo "/" le dice a su otro directorio de carpetas. Los datos de cada tabla particionada se almacenarán en el directorio asociado. Por ejemplo, si tenemos particiones como las siguientes

year=2017/month=11/day=1/part=1

entonces podemos usar

select * from TABLE NAME where year=2017 AND month=11 AND day=1 AND part=1 LIMIT 10;

Respondido 09 Jul 18, 13:07

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.