Función get_json_object de Hive

–Utilizar escenarios

En el escenario de recopilación real, los campos de archivo que se recopilan activamente o se envían pasivamente pueden contener cadenas json. La mayoría de estos son datos de rastreador o datos de registro. Hive proporciona un tipo de función de análisis json para preprocesar y limpiar dichos datos. Este artículo presenta la función get_json_object

–Preparación de datos

En este momento, hay una tabla DWD en DW, que contiene los campos del objeto json (esta tabla en realidad todavía pertenece a la tabla de hechos de un tipo de proceso empresarial, pero el campo contiene el objeto json, por lo que se almacena en la capa DWD, no en el ODS Hacer procesamiento), aquí solo el campo json
Inserte la descripción de la imagen aquíes una descripción json de la información de la casa

- Cómo usar

get_json_object (columna, "$. param")

La columna de parámetros es el campo a analizar. En este ejemplo, el
segundo parámetro de parámetro de result_contxt debe dividirse. Si el contenido del campo es una matriz json, use [n] .key, que significa el valor clave del número de objetos json. Un único objeto json es directamente
. La clave es un único objeto json en los datos anteriores, por lo que se
utiliza la segunda forma de análisis . Ejemplo de uso:

select
  get_json_object(result_contxt, "$.house_type2") as house_type2
from
  库名.表名
where
  p_day = '20191127'

El resultado de la consulta es:
Inserte la descripción de la imagen aquítodos los elementos se analizan:

select 
get_json_object(result_contxt,'$.house_type2')as house_type2, 
get_json_object(result_contxt,'$.house_type1')as house_type1, 
get_json_object(result_contxt,'$.build_type')as build_type, 
get_json_object(result_contxt,'$.house_belong')as house_belong, 
get_json_object(result_contxt,'$.house_direction')as house_direction, 
get_json_object(result_contxt,'$.years_right')as years_right, 
get_json_object(result_contxt,'$.title')as title, 
get_json_object(result_contxt,'$.last_tran')as last_tran, 
get_json_object(result_contxt,'$.unit_price')as unit_price, 
get_json_object(result_contxt,'$.belong_area2')as belong_area2, 
get_json_object(result_contxt,'$.build_year')as build_year, 
get_json_object(result_contxt,'$.tran_time')as tran_time, 
get_json_object(result_contxt,'$.lift')as lift, 
get_json_object(result_contxt,'$.square_measure2')as square_measure2, 
get_json_object(result_contxt,'$.square_measure1')as square_measure1, 
get_json_object(result_contxt,'$.poi_id')as poi_id, 
get_json_object(result_contxt,'$.total_price')as total_price, 
get_json_object(result_contxt,'$.url')as url, 
get_json_object(result_contxt,'$.floor')as floor, 
get_json_object(result_contxt,'$.decorate')as decorate, 
get_json_object(result_contxt,'$.village_name')as village_name, 
get_json_object(result_contxt,'$.time')as time, 
get_json_object(result_contxt,'$.area_county')as  area_county
from 
库名.表名
where p_day = '20191127'

Resultados de la consulta:
Inserte la descripción de la imagen aquí
se presentan otros problemas: si el campo es una matriz json, ¿cómo analizar todo el objeto json?
Si no está seguro, consulte otra introducción al uso de la función de explosión.

14 artículos originales publicados · Me gusta1 · Visitas 684

Supongo que te gusta

Origin blog.csdn.net/qq_33891419/article/details/103297105
Recomendado
Clasificación