es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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 &#39 ;, b.date_time) como fecha_prt,
     FECHA_PARTE (' hora &#39 ;, 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

Tags:  , , ,

Answer

  1. Avatar for 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:

    SELECT CONCAT(DATE_FORMAT(from_unixtime(UNIX_TIMESTAMP(timestamp, 'yyyyMMddHHmmss')), 'yyyy:MM:dd: HH'), ':00:00') AS date_time_hour, COUNT(*) AS count
    FROM table_name
    GROUP BY date_time_hour;
    

    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ón from_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ón CONCAT 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áusula SELECT debe coincidir con el nombre de la columna de marca de tiempo en su tabla de Hive.

Comments are closed.