Dominio de las fechas en Hadoop para astrónomos

HadoopHadoopBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

Es el año 2285, y la humanidad ha establecido una estación espacial próspera orbitando alrededor del planeta Marte. Esta instalación de investigación, conocida como el Observatorio Marciano, funciona como un centro de exploración y descubrimiento científico. Entre los muchos científicos que trabajan aquí está la Dra. Emma Wilkins, una brillante analista de datos especializada en observaciones astronómicas.

La Dra. Wilkins se ha encargado de analizar grandes cantidades de datos recolectados por varios telescopios e instrumentos a bordo de la estación. Sin embargo, los datos están en un formato crudo, y ella necesita procesarlos y manipularlos para extraer información significativa. Uno de los desafíos más críticos que enfrenta es trabajar con información de fecha y hora, ya que muchas de las observaciones son sensibles a la hora y requieren cálculos de fecha precisos.

Para enfrentar este desafío, la Dra. Wilkins debe aprovechar las poderosas funciones de manipulación de fechas disponibles en Hadoop Hive, una solución de almacenamiento de datos diseñada para el procesamiento de grandes cantidades de datos. Al dominar estas funciones, ella puede manipular y analizar eficientemente los datos de fecha y hora, lo que le permite descubrir patrones, tendencias y anomalías que podrían conducir a descubrimientos revolucionarios en el campo de la astronomía.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL hadoop(("Hadoop")) -.-> hadoop/HadoopHiveGroup(["Hadoop Hive"]) hadoop/HadoopHiveGroup -.-> hadoop/hive_shell("Hive Shell") hadoop/HadoopHiveGroup -.-> hadoop/create_tables("Creating Tables") hadoop/HadoopHiveGroup -.-> hadoop/load_insert_data("Loading and Inserting Data") hadoop/HadoopHiveGroup -.-> hadoop/basic_hiveql("Basic HiveQL Queries") hadoop/HadoopHiveGroup -.-> hadoop/where("where Usage") hadoop/HadoopHiveGroup -.-> hadoop/date("Date Operating Function") hadoop/HadoopHiveGroup -.-> hadoop/udf("User Defined Function") hadoop/HadoopHiveGroup -.-> hadoop/storage_formats("Choosing Storage Formats") subgraph Lab Skills hadoop/hive_shell -.-> lab-288963{{"Dominio de las fechas en Hadoop para astrónomos"}} hadoop/create_tables -.-> lab-288963{{"Dominio de las fechas en Hadoop para astrónomos"}} hadoop/load_insert_data -.-> lab-288963{{"Dominio de las fechas en Hadoop para astrónomos"}} hadoop/basic_hiveql -.-> lab-288963{{"Dominio de las fechas en Hadoop para astrónomos"}} hadoop/where -.-> lab-288963{{"Dominio de las fechas en Hadoop para astrónomos"}} hadoop/date -.-> lab-288963{{"Dominio de las fechas en Hadoop para astrónomos"}} hadoop/udf -.-> lab-288963{{"Dominio de las fechas en Hadoop para astrónomos"}} hadoop/storage_formats -.-> lab-288963{{"Dominio de las fechas en Hadoop para astrónomos"}} end

Configurando el entorno de Hive

En este paso, configuraremos el entorno de Hive y crearemos un conjunto de datos de muestra para practicar con las funciones de manipulación de fechas.

  1. Primero, cambie al usuario hadoop ejecutando el siguiente comando en la terminal:
su - hadoop
  1. Ahora, lance la shell de Hive ejecutando el siguiente comando:
hive
  1. Cree una nueva tabla de Hive llamada observaciones con el siguiente esquema:
CREATE TABLE observations (
    observation_id INT,
    telescope STRING,
    observation_date STRING,
    observation_time STRING
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE;
  1. Cargue algunos datos de muestra en la tabla observaciones:
LOAD DATA LOCAL INPATH '/home/hadoop/resources/observations.csv' OVERWRITE INTO TABLE observations;

El archivo observations.csv contiene datos de observación de muestra con columnas para observation_id, telescope, observation_date (en el formato yyyy-MM-dd) y observation_time (en el formato HH:mm:ss).

Usando la función year()

En este paso, aprenderemos a usar la función year() en Hive para extraer el año de una cadena de fecha.

La función year() toma una cadena de fecha o marca de tiempo como entrada y devuelve el componente de año como un valor entero.

  1. Abra la consola de Hive ejecutando el comando hive en la terminal.

  2. Ejecute la siguiente consulta para extraer el año de la columna observation_date:

SELECT observation_id, year(observation_date) AS observation_year
FROM observations;

Esta consulta devolverá el observation_id y el año correspondiente para cada observación en la tabla.

  1. También puede usar la función year() en combinación con otras funciones o cláusulas de fecha. Por ejemplo, para filtrar observaciones de un año específico, puede usar la siguiente consulta:
SELECT *
FROM observations
WHERE year(observation_date) = 2022;

Esta consulta devolverá todas las observaciones donde el componente de año de la observation_date es 2022.

Usando la función datediff()

En este paso, aprenderemos a usar la función datediff() en Hive para calcular la diferencia entre dos fechas.

La función datediff() toma dos cadenas de fecha o marca de tiempo como entrada y devuelve el número de días entre ellas.

  1. Abra la consola de Hive si no está ya abierta.

  2. Ejecute la siguiente consulta para calcular el número de días entre dos fechas de observación:

SELECT observation_id,
       observation_date,
       '2022-12-31' AS reference_date,
       datediff('2022-12-31', observation_date) AS days_until_end_of_year
FROM observations;

Esta consulta devolverá el observation_id, observation_date, una fecha de referencia (2022-12-31) y el número de días entre la observation_date y la fecha de referencia (days_until_end_of_year).

  1. También puede usar la función datediff() con otras funciones o cláusulas de fecha. Por ejemplo, para filtrar observaciones dentro de un rango de fechas específico, puede usar la siguiente consulta:
SELECT *
FROM observations
WHERE datediff(observation_date, '2022-01-01') BETWEEN 0 AND 180;

Esta consulta devolverá todas las observaciones donde la observation_date está entre el 1 de enero de 2022 y el 30 de junio de 2022 (inclusive).

Usando la función date_format()

En este paso, aprenderemos a usar la función date_format() en Hive para convertir una cadena de fecha de un formato a otro.

La función date_format() toma dos argumentos: una cadena de fecha o marca de tiempo y un patrón de formato. Devuelve la cadena de fecha o marca de tiempo en el patrón de formato especificado.

  1. Abra la consola de Hive si no está ya abierta.

  2. Ejecute la siguiente consulta para convertir la columna observation_date del formato yyyy-MM-dd al formato MMM dd, yyyy:

SELECT observation_id,
       observation_date,
       date_format(observation_date, 'MMM dd, yyyy') AS formatted_date
FROM observations;

Esta consulta devolverá el observation_id, la fecha observation_date original y la fecha formateada (formatted_date) en el formato MMM dd, yyyy (por ejemplo, Jun 15, 2022).

  1. También puede usar la función date_format() con otras funciones o cláusulas de fecha. Por ejemplo, para filtrar observaciones basadas en un formato de fecha específico, puede usar la siguiente consulta:
SELECT *
FROM observations
WHERE date_format(observation_date, 'yyyy/MM/dd') = '2022/06/15';

Esta consulta devolverá todas las observaciones donde la observation_date, cuando se formatea como yyyy/MM/dd, es igual a 2022/06/15.

Usando la función add_months()

En este paso, aprenderemos a usar la función add_months() en Hive para sumar o restar meses a una fecha.

La función add_months() toma dos argumentos: una cadena de fecha o marca de tiempo y un valor entero que representa el número de meses que se van a sumar o restar.

  1. Abra la consola de Hive si no está ya abierta.

  2. Ejecute la siguiente consulta para sumar seis meses a la columna observation_date:

SELECT observation_id,
       observation_date,
       add_months(observation_date, 6) AS date_plus_six_months
FROM observations;

Esta consulta devolverá el observation_id, la fecha observation_date original y la fecha seis meses después de la observation_date (date_plus_six_months).

  1. También puede usar la función add_months() con otras funciones o cláusulas de fecha. Por ejemplo, para filtrar observaciones dentro de un rango de meses específico, puede usar la siguiente consulta:
SELECT *
FROM observations
WHERE month(add_months(observation_date, 6)) BETWEEN 1 AND 6;

Esta consulta devolverá todas las observaciones donde el componente de mes de la fecha seis meses después de la observation_date está entre enero y junio (inclusive).

Resumen

En este laboratorio, exploramos el mundo de las funciones de manipulación de fechas en Hadoop Hive, una potente solución de almacenamiento de datos para el procesamiento de grandes cantidades de datos. A través de un escenario cautivador ambientado en una estación espacial futurista orbitando Marte, seguimos el viaje de la Dra. Emma Wilkins, una brillante analista de datos encargada de analizar observaciones astronómicas.

Al dominar funciones de manipulación de fechas como year(), datediff(), date_format() y add_months(), la Dra. Wilkins adquirió la capacidad de manipular y analizar eficientemente datos de fecha y hora, lo que le permitió descubrir patrones, tendencias y anomalías que podrían conducir a descubrimientos revolucionarios en el campo de la astronomía.

A lo largo del laboratorio, profundizamos en ejemplos prácticos y proporcionamos verificadores para garantizar una experiencia de aprendizaje sin problemas. La naturaleza interactiva del laboratorio permitió a los aprendices practicar y fortalecer su comprensión de estas funciones esenciales, sentando las bases para técnicas de análisis de datos más avanzadas.

En general, este laboratorio no solo impartió habilidades técnicas valiosas, sino que también fomentó un sentido de asombro y curiosidad por la vasta extensión del cosmos. Al capacitar a los aprendices con las herramientas para desvelar los secretos ocultos en los datos astronómicos, pavimentamos el camino para que futuras generaciones de científicos impulsen los límites del conocimiento y la exploración humana.