[Notas personales] Tipos complejos de colmena

Los tipos de datos de Hive son muy ricos, así que no hablemos de los simples, solo hablemos de la comprensión y el uso de varios tipos complejos de uso común.
Según el sitio web oficial , hay 4 tipos complejos de colmena:

Tipos complejos:
1. matrices: ARRAY<tipo_de_datos> (Nota: se permiten valores negativos y expresiones no constantes a partir de Hive 0.14).
2. mapas: MAP<tipo_primitivo, tipo_de_datos> (Nota: valores negativos y expresiones no constantes) -las expresiones constantes están permitidas a partir de Hive 0.14.)
3. structs: STRUCT<col_name : data_type [COMMENT col_comment], …>
4. union: UNIONTYPE<data_type, data_type, …> (Nota: solo disponible a partir de Hive 0.7.0 .)
Nuestro diario Los primeros tres son de uso común, solo debemos entender que son definición, valor y construcción. Se pueden utilizar en colmena.


Definición de ARRAY
: valor de matriz: construcción arr[0]
: matriz(val2, val2, val3,...), split(), COLLECT_SET()

definición de mapa
: mapa<Cadena, Cadena>
valor: mapa[clave]
construcción L: mapa(clave1, valor1, clave2, valor2, ...)

struct:
Definición: struct<a:string,b:string>
Valor: struct.id
Construcción: name_struct(name1,val1,name2,val2,name3,val3,…)

  • Hay una pequeña diferencia entre el uso de map y struct:
  • Los tipos en el mapa son los mismos, podemos saber de acuerdo a nuestra definición
  • Los tipos en la estructura pueden ser diferentes.

Aquí hay una declaración de creación de tabla de escena simple:

CREATE EXTERNAL TABLE ods_log_inc
(
    `common`   STRUCT<ar :STRING,ba :STRING,ch :STRING,is_new :STRING,md :STRING,mid :STRING,os :STRING,uid :STRING,vc:STRING> ,
    `page`     STRUCT<during_time :STRING,item :STRING,item_type :STRING,last_page_id :STRING,page_id:STRING,source_type :STRING> ,
    `actions`  ARRAY<STRUCT<action_id:STRING,item:STRING,item_type:STRING,ts:BIGINT>> ,
    `displays` ARRAY<STRUCT<display_type :STRING,item :STRING,item_type :STRING,`order` :STRING,pos_id:STRING>> ,
    `start`    STRUCT<entry :STRING,loading_time :BIGINT,open_ad_id :BIGINT,open_ad_ms :BIGINT,open_ad_skip_ms:BIGINT> ,
    `err`      STRUCT<error_code:BIGINT,msg:STRING> ,
    `ts`       BIGINT  
) 
    PARTITIONED BY (`dt` STRING)
    ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.JsonSerDe'
    LOCATION '/warehouse/gmall/ods/ods_log_inc/';

Supongo que te gusta

Origin blog.csdn.net/m0_49303490/article/details/128276240
Recomendado
Clasificación