Contar todas las entradas con agrupación por marca de tiempo en intervalos horarios.
Tengo una tabla Hive que tiene una marca de tiempo en formato de cadena como se muestra a continuación,
20190516093836, 20190304125015, 20181115101358
Quiero obtener el recuento de filas con una marca de tiempo agregada en horas como se muestra a continuación
date_time count
2019:05:16: 00:00:00 23
2019:05:16: 01:00:00 64
Seguí varios enlaces como este pero no pude generar los resultados deseados todavía.
Esta es mi consulta final:
SELECT
FECHA_PARTE (' día ' ;, b.date_time) como fecha_prt,
FECHA_PARTE (' hora ' ;, b.date_time) como hora_prt,
CONTAR (*)
Desde
(SELECCIONAR
DE_UNIXTIME (UNIX_TIMESTAMP (timestamp
, " yyyyMMddHHmmss & amp ; quot;)) como fecha_hora
DESDE el nombre de la tabla
DONDE de_unixtime (unix_timestamp (marca de tiempo
, " yyyyMMddHHmmss "))
ENTRE '2018-12-10 07:02: 30' y '2018-12-12 08: 02: 30') b
AGRUPO POR
fecha_prt, hora_prt
Espero contar con su orientación, gracias de antemano
davy.ai
Para obtener el recuento de filas con una marca de tiempo de agregación en formato horario de una tabla de Hive que tiene una marca de tiempo en formato de cadena, puede usar la siguiente consulta:
Explicación de la consulta:
from_unixtime(UNIX_TIMESTAMP(timestamp, 'yyyyMMddHHmmss'))
convierte la cadena de marca de tiempo en un timestamp de Unix y luego en un formato de marca de tiempo que Hive admite usando la funciónfrom_unixtime
.DATE_FORMAT
se utiliza para extraer y formatear las partes de año, mes, día y hora de la marca de tiempo. La funciónCONCAT
se utiliza para unir las partes en una cadena en el formato deseado (por ejemplo,2019:05:16: 00:00:00
).COUNT(*)
simplemente cuenta el número de filas en cada grupo.GROUP BY date_time_hour
agrupa los resultados por la marca de tiempo horaria.Tenga en cuenta que la columna
timestamp
en la cláusulaSELECT
debe coincidir con el nombre de la columna de marca de tiempo en su tabla de Hive.