Uso de funciones especiales de Hive

Uso de funciones especiales de Hive

como si

En Hive, CON AS es un uso de subconsulta para definir una expresión temporal al comienzo de la consulta. Su estructura gramatical es la siguiente:

WITH [表达式名称] AS (
	子查询表达式
)

En esta estructura, [nombre de expresión] es el nombre utilizado para hacer referencia al resultado de la expresión temporal y la expresión de subconsulta es una instrucción SELECT válida que devuelve el conjunto de resultados como una tabla temporal.

Caso (hay una tabla llamada pedidos, que contiene dos columnas: número de pedido y monto del pedido. Podemos usar CON AS para crear una expresión temporal para calcular el monto total de cada pedido y luego usarla en consultas posteriores):

WITH order_totals AS (
	SELECT order_id, SUM(order_amount) AS total_amount
	FROM orders
	GROUP BY order_id
)
SELECT order_id, total_amount
FROM order_totals
WHERE total_amount > 1000;

En el ejemplo anterior, primero definimos una expresión temporal llamada order_totals, que utiliza una subconsulta para calcular el monto total de cada pedido. Luego, usamos order_totals en declaraciones SELECT posteriores para obtener pedidos con un monto total superior a 1000. De esta manera, podemos definir y hacer referencia a expresiones temporales en una declaración de consulta, haciendo que la consulta sea más concisa y fácil de entender.

Cuando se requieren varias declaraciones de subconsulta, se pueden usar comas para conectar cada declaración. El ejemplo es el siguiente:

with a as (select name,age,sno from table_A),
	 b as (select * from a where age >= 12 and age <=22),
	 c as (select * from b where sno = "0001")
select * from c where name = "zs"

elenco

En Hive, CAST es una función de conversión de tipos que se utiliza para convertir una expresión o columna a un tipo de datos específico. Su sintaxis es la siguiente:

CAST(表达式 AS 数据类型)

En esta estructura, la expresión puede ser un valor específico, un nombre de columna o el valor de retorno de una función. El tipo de datos puede ser cualquier tipo de datos válido admitido por Hive, como INT, STRING, BOOLEAN, etc.

Caso (hay una tabla llamada pedidos, que contiene dos columnas order_id y order_amount, donde el tipo de datos de order_amount es cadena. Podemos usar la función CAST para convertir order_amount a un tipo de punto flotante y luego realizar el cálculo de la suma):

SELECT SUM(CAST(order_amount AS FLOAT))
FROM orders;

En el ejemplo anterior, convertimos la columna order_amount del tipo de cadena al tipo de punto flotante (FLOAT) mediante la función CAST y luego calculamos la suma de la columna convertida usando la función SUM.

Cabe señalar que al realizar la conversión de tipos, asegúrese de que el tipo de datos de destino sea compatible con el tipo de datos de origen; de lo contrario, la conversión puede fallar o provocar un error. Además, la conversión de tipos forzada también puede provocar la pérdida o el truncamiento de la precisión de los datos, por lo que debe utilizarse con precaución según la situación específica.

get_json_object

Se utiliza para extraer el valor de un objeto JSON específico de una cadena JSON. Toma como entrada una cadena JSON y una ruta JSON y devuelve el valor del objeto JSON correspondiente a la ruta. La ruta JSON se puede utilizar para especificar la ubicación del objeto JSON que desea extraer, que puede ser el nombre de campo del objeto, el índice de la matriz o un comodín. Al utilizar esta función, se pueden recuperar y manipular partes específicas de datos JSON para facilitar la extracción y el análisis de datos.

get_json_object(string json_string,string path)

Caso (existe un objeto json llamado log_information, que contiene campos como hora, nombre, edad, nacimiento, etc.):

get_json_object(log_information,'$.time') as time

marca_hora_unix

unix_timestamp se utiliza para calcular marcas de tiempo. Una marca de tiempo es un número que representa un tiempo específico, generalmente la cantidad de segundos que han transcurrido desde el 1 de enero de 1970. La función unix_timestamp puede convertir la fecha y hora especificadas en la marca de tiempo correspondiente.

unix_timestamp(time,"yyyyMMddHHmmss") as timestamp

desde_unixtime

La función from_unixtime se utiliza para convertir marcas de tiempo en fechas y horas correspondientes. Acepta una marca de tiempo como parámetro y la convierte en una cadena de fecha y hora con un formato específico. Esta función se puede utilizar para convertir marcas de tiempo de Unix en formatos de fecha y hora legibles para una mejor comprensión y procesamiento de los datos de tiempo.

from_unixtime(timestamp,"yyyy-MM-dd HH:mm:ss") as time

Algunas funciones se han utilizado recientemente para procesar algunos datos, y en el futuro se utilizarán nuevas funciones o SQL y se seguirán actualizando. ! !

Supongo que te gusta

Origin blog.csdn.net/weixin_57367513/article/details/134017967
Recomendado
Clasificación