Hive - Tipi di dati

In questo capitolo vengono illustrati i diversi tipi di dati in Hive, coinvolti nella creazione della tabella. Tutti i tipi di dati in Hive sono classificati in quattro tipi, indicati come segue:

  • Tipi di colonna
  • Literals
  • Valori nulli
  • Tipi complessi

Tipi di colonna

I tipi di colonna vengono usati come tipi di dati di colonna di Hive. Sono i seguenti:

Tipi integrali

I dati di tipo intero possono essere specificati utilizzando i tipi di dati integrali, INT. Quando l'intervallo di dati supera l'intervallo di INT, è necessario utilizzare BIGINT e se l'intervallo di dati è inferiore a INT, si utilizza SMALLINT. TINYINT è più piccolo di SMALLINT.

La tabella seguente illustra vari tipi di dati INT:

genere Postfix Esempio
TINYINT Y 10Y
PICCOLO S 10S
INT - 10
BIGINT L 10L

Tipi di stringa

I tipi di dati di tipo stringa possono essere specificati utilizzando virgolette singole ("") o doppie (""). Contiene due tipi di dati: VARCHAR e CHAR. Hive segue i caratteri di escape di tipo C.

La tabella seguente illustra vari tipi di dati CHAR:

Tipo di dati Lunghezza
VARCHAR 1 a 65355
CHAR 255

Timestamp

Supporta il tradizionale timestamp UNIX con precisione opzionale al nanosecondo. Supporta il formato java.sql.Timestamp "AAAA-MM-GG HH: MM: SS.fffffffff" e il formato "aaaa-mm-gg hh: mm: ss.ffffffffff".

Date

I valori DATE sono descritti nel formato anno / mese / giorno nel formato {{AAAA-MM-GG}}.

Decimali

Il tipo DECIMAL in Hive è uguale al formato Big Decimal di Java. Viene utilizzato per rappresentare una precisione arbitraria immutabile. La sintassi e l'esempio sono i seguenti:

DECIMAL(precision, scale)
decimal(10,0)

Tipi di unione

Union è una raccolta di tipi di dati eterogenei. Puoi creare un'istanza utilizzandocreate union. La sintassi e l'esempio sono i seguenti:

UNIONTYPE<int, double, array<string>, struct<a:int,b:string>>

{0:1} 
{1:2.0} 
{2:["three","four"]} 
{3:{"a":5,"b":"five"}} 
{2:["six","seven"]} 
{3:{"a":8,"b":"eight"}} 
{0:9} 
{1:10.0}

Letterali

I seguenti valori letterali vengono utilizzati in Hive:

Tipi in virgola mobile

I tipi in virgola mobile non sono altro che numeri con punti decimali. Generalmente, questo tipo di dati è composto dal tipo di dati DOPPIO.

Tipo decimale

I dati di tipo decimale non sono altro che un valore in virgola mobile con un intervallo maggiore del tipo di dati DOUBLE. La gamma di tipo decimale è approssimativamente -10 -308 a 10 308 .

Valore nullo

I valori mancanti sono rappresentati dal valore speciale NULL.

Tipi complessi

I tipi di dati complessi Hive sono i seguenti:

Arrays

Gli array in Hive vengono utilizzati nello stesso modo in cui vengono utilizzati in Java.

Syntax: ARRAY<data_type>

Mappe

Le mappe in Hive sono simili a Java Maps.

Syntax: MAP<primitive_type, data_type>

Structs

Structs in Hive è simile all'utilizzo di dati complessi con commenti.

Syntax: STRUCT<col_name : data_type [COMMENT col_comment], ...>