Hadoopのエコ--Hive - ハイブのデータ型

デジタルタイプ

TINYINT(-128から127までの整数を符号付き1バイト)

SMALLINT(-32,768から32,767まで2バイトの符号付き整数)

INT / INTEGER(4バイト-2,147,483,648から2,147,483,647に、符号付き整数)

BIGINT(-9,223,372,036,854,775,808から9,223,372,036,854,775,807に8バイトの符号付き整数)

FLOAT(4バイトの単精度浮動小数点数)

DOUBLE(8バイトの倍精度浮動小数点数) 

例:

表t_test(文字列、BのINT、C BIGINT、Dフロート、E二重、TINYINT F、G SMALLINT)を作成

第二に、日付と時刻タイプ

TIMESTAMP(注:ハイブ0.8.0で始まるのみ利用可能)

DATE(注:ハイブ0.12.0で始まるのみ利用可能)

たとえば、ファイルには、次のようなデータを持っている場合:

。1、zhangsan、1985年 - 06 - 30 
2、リージ、1986年 - 07 - 10 
。3、wangwu、1985年 - 08 - 09

だから、あなたはマップするために、データのテーブルを構築することができます

テーブルt_customer(ID int型、名前文字列、誕生日の日付)を作成

「」によって終了行形式区切られたフィールド。

そして、データをインポートします

テーブルt_customerにデータをロードし、ローカルINPATH「/root/customer.dat」;

その後、あなたは正確に照会することができます

第三に、文字列型

STRING

VARCHAR(注:ハイブ0.12.0で始まるのみ利用可能)

CHAR(注:ハイブ0.13.0で始まるのみ利用可能)

第四に、ハイブリッド型

BOOLEAN

BINARY(注:ハイブで始まるのみ利用可能  0.8.0

第五に、複合型

5-1配列の配列型

アレイ:ARRAY <DATA_TYPE>(注:負の値と非定数式がハイブ0.14として許容されます。)

例:アプリケーションの配列型

以下のデータは、ハイブデマッピングテーブルを必要とする場合:

ウルフ2、呉京:呉ギャング:ドラゴンの母、2017年 - 08 - 16 
サンセイIIIマイル桃、劉イーフェイ:かゆみ、2017年 - 08 - 20

アイデア:情報をもっと便利にマッピングするための配列で主演した場合

内蔵のテーブル:

テーブルt_movieを作成する(moive_name文字列、俳優列<文字列>、first_show日)

によって終了行フォーマット区切られたフィールド「」

「:」で終わるコレクションアイテム。

データをインポート:

テーブルt_movieにデータをロードし、ローカルINPATH「/root/movie.dat」;

クエリ:

t_movieから*を選択します。

t_movieからmoive_name、俳優[0]を選択します。

t_movieからここarray_contains(俳優、 '吴刚')moive_name、アクタを選択します。

t_movieからmoive_name、サイズ(アクター)を選択します。

5-2マップタイプ

マップ:MAP <primitive_type、DATA_TYPE>(注:負の値と非定数式がハイブ0.14のよう許可されています。)

例:

。1、zhangsan、父:暁明#母:xiaohuang#ブラザー:Xiaoxu、28 
2、リージ、父:mayun#母:huangyi#ブラザー:Guanyu、22である
3。、wangwu、父:#母王健林:インナーフィーリング#1 SISTER:Jingtian、29 
4、mayun、父:母mayongzhen#:アンジェラベイビー、26

マップの前記データタイプと家族に説明することができます 

table文の構築:

テーブルt_person(ID int型、名前文字列、family_membersマップの<string、string>は、年齢int)を作成します

によって終了行フォーマット区切られたフィールド「」

「#」で終わるコレクションアイテム

「:」で終了し、マップキー。

クエリ:

t_personから*を選択します。

##は、指定されたキーフィールドマップの値をとります

選択ID、名前、family_members [ '父'] t_personから父親として;

すべてのキーフィールドをマップ##テイク

選択ID、名前、t_personから関係としてmap_keys(family_members)。

##フィールドマップのすべての値をとります

選択ID、名前、map_values t_personから(family_members)。

t_personから選択ID、名前、map_values(family_members)[0];

総合##:ユーザ情報のクエリは、弟を持っています

選択 ID 、名前、父親
から選択 ID、名前、family_members [ 兄弟t_personから父親として])tmpの
父親ではないヌル

5-3構造体型 

構造体:STRUCT <COL_NAME:DATA_TYPE、...>

1、zhangsan、18:男性:北京

2、リージ、28:女性:上海

 

どのユーザー情報含まれています。年齢:整数、性別:文字列、住所:文字列を

全体のユーザ情報を記述するためのフィールドを想定し、構造体を使用することができます

内蔵のテーブル:

テーブルt_person_structを作成します(ID int型、名前文字列、情報構造体<年齢:int型、性別:文字列、ADDR:文字列>)

によって終了行フォーマット区切られたフィールド「」

「:」で終わるコレクションアイテム。

お問い合わせ

t_person_structから*を選択します。

ID、名前、t_person_structからinfo.ageを選択します。

 

おすすめ

転載: www.cnblogs.com/Jing-Wang/p/10945443.html