Hive procesa datos Json
Caterpillar json.data
Crear tabla de colmena y cargar datos
Json_tuple no admite el procesamiento anidado de Json, pero admite la obtención de varios archivos de nivel superior a la vez time El valor correspondiente a la clave.
Get_json_object no admite la obtención de varios valores a la vez, pero admite el procesamiento de json complejos.
Uso: get_JSON_object (cadena JSON_string, ruta de cadena) Anteriormente, presentamos cómo verificar el uso de la función desc get_JSON_object.
Valor de retorno: Cadena
Descripción: analiza la cadena json json_String y devuelve el contenido especificado por la ruta. Si la cadena json de entrada no es válida, se devuelve NUll y la función solo puede devolver un elemento de datos a la vez.
Ejemplo específico: get_JSON_object(value,'$.id')
seleccione get_JSON_object(text, "$.movie") de ods.ods _ json _ data
La desventaja de esta función es que solo puede devolver un valor, es decir, no podemos extraer múltiples valores de json a la vez. Si queremos extraer múltiples valores, tenemos que llamar a esta función varias veces, pero el json_tuple que presentamos a continuación está bien, pero eso no significa que esta función no sea poderosa ni nada por el estilo. Memorizar la API de esta función puede ahorrarle mucho tiempo.
Uso: JSON_tuple(JSON STR, P1, P2, ..., PN) es la clave que queremos extraer.
Valor de retorno: tupla (v1,...vn) valor de retorno v1...donde vn corresponde a la clave p1....pn.
seleccione JSON_tuple(texto, película, velocidad, marca de tiempo, 'uid') de ODS _ JSON _ data
Json_tuple es equivalente a get_json_object. La ventaja es que se pueden analizar varios campos Json a la vez.
Dijimos antes que json_tuple no admite el procesamiento de json anidado.
En este momento, descubrió que extraje todos los sitios web en la matriz json. ¿Hay alguna manera fácil? En teoría, get_json_object solo puede tener un valor de retorno y, de todos modos, es necesario escribir varios valores de retorno. ¿Alguna vez has pensado en un problema? Si 100 elementos en esta matriz son json, necesito todos los sitios web json. ¿Necesito escribirlo 100 veces? Si lees atentamente la API de esta función, encontrarás otro símbolo *
Ahora ya sabes, get_json_object solo puede devolver un elemento, no solo una cadena, la cadena es originalmente una matriz json. ¿Qué pasa si analizamos la matriz desde json?
Es importante tener en cuenta que después de la siguiente operación, obtendrá una cadena json, por lo que podrá procesarla nuevamente como se indicó anteriormente.
Pero a veces queremos obtenerlo directamente en lugar de anidarlo de esta manera. En este caso, en realidad combinamos el parámetro de ruta de la función get_json_object anidada arriba.
En este momento, si *buscamos bendiciones, será muy sencillo.
De hecho, aquí aprendimos a especificar el subíndice de la matriz para obtener los elementos y especificar * para obtener todos los elementos. Es como si quisiera obtener los primeros tres o pares o impares. Jaja, si vuelves a mirar la API, sabrás que proporciona un operador de Union. Simplemente especifique los subíndices que desee combinar y obtener.
Intentemos obtener un número par, o un número impar, o un número par o impar dentro de un rango determinado.
De hecho, es el segmento de matriz proporcionado anteriormente, que se puede utilizar consultando la API.
Pero lo probé y descubrí que esta función tiene un error y no puede lograr el efecto de cortar. Siempre lo devuelvo todo.
Para los datos de json.data anterior, ¿podemos procesarlos cuando los datos cargados llegan a la colmena, en lugar de procesarlos cuando se usan después de que se completa la carga, especialmente para este formato json, en el que el incrustado ¿No es muy complicada la estructura del conjunto?
Con este método, debes prestar atención a que el tipo de datos y el nombre del campo coincidan; de lo contrario, informarás un error o no obtendrás el valor. ¿Qué pasa con las estructuras anidadas más complejas? De hecho, también es posible agregar un campo anidado basado en los datos anteriores.