国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Hive中的復(fù)雜數(shù)據(jù)類型 - array、map、struct

這篇具有很好參考價(jià)值的文章主要介紹了Hive中的復(fù)雜數(shù)據(jù)類型 - array、map、struct。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

水善利萬(wàn)物而不爭(zhēng),處眾人之所惡,故幾于道??

一、簡(jiǎn)單數(shù)據(jù)類型(復(fù)習(xí))

官方數(shù)據(jù)類型詳情頁(yè)

數(shù)據(jù)類型 描述 范圍
tinyint 1byte有符號(hào)整數(shù) from -128 to 127
smallint 2byte有符號(hào)整數(shù) from -32,768 to 32,767
int 4byte有符號(hào)整數(shù) from -2,147,483,648 to 2,147,483,647
bigint 8byte有符號(hào)整數(shù) from -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807
float 4byte單精度浮點(diǎn)數(shù) \
double 8byte雙精度浮點(diǎn)數(shù) \
decimal 高精度數(shù)值類型 decimal(10,0)默認(rèn)值,表示最多有10位數(shù),其中0位小數(shù)
boolean 布爾類型 true或者false
string 字符串 用的最多
date 日期類型 YYYY--MM--DD
timestamp 時(shí)間戳類型 \

二、復(fù)雜數(shù)據(jù)類型

array(數(shù)組)

定義數(shù)組:array<int>
構(gòu)建數(shù)組:array(1,3,5,6)
訪問(wèn)數(shù)組:字段名[0]

map(集合)

定義集合:map<string,int>
構(gòu)建集合:map(“age”,11,“weight”,99)
訪問(wèn)集合:字段名[“weight”]

struct(結(jié)構(gòu)體)

定義結(jié)構(gòu)體:struct<name:string,age:int>
構(gòu)建結(jié)構(gòu)體:named_struct(“name”,“Asrid”,“age”,99)
訪問(wèn)結(jié)構(gòu)體:字段名.name


看完上面可能一臉懵,有點(diǎn)懂,又有點(diǎn)迷,下面用一個(gè)例子解釋下。

數(shù)據(jù)類型無(wú)非就是創(chuàng)建表的時(shí)候指定數(shù)據(jù)類型,然后向表中插入數(shù)據(jù)的時(shí)候要按照相應(yīng)的數(shù)據(jù)類型構(gòu)建出相應(yīng)格式類型的數(shù)據(jù)才能插入,最終在查詢的時(shí)候如何訪問(wèn)到數(shù)據(jù)。

上面說(shuō)的分別就對(duì)應(yīng)數(shù)據(jù)類型的定義、構(gòu)建、訪問(wèn)。

比如,想創(chuàng)建一張data_type表,字段的數(shù)據(jù)類型分別用array、map、struct,那如何寫呢?

create table data_type(
	name string,
	age int,
	address map<string,string>,
	friend struct<name:string,age:int>,
	phone array<bigint>
)

表中最后三個(gè)字段的類型就是復(fù)雜數(shù)據(jù)類型的定義,也就是如何聲明一個(gè)復(fù)雜的數(shù)據(jù)類型。

hive array<struct<x:decimal(15,12),y:decimal(15,13)>>,hive,hive,hadoop,數(shù)據(jù)倉(cāng)庫(kù),復(fù)雜數(shù)據(jù)類型,struct,map,array


表創(chuàng)建好了以后,如何向表中插入數(shù)據(jù)呢?這就涉及到如何構(gòu)建一個(gè)map、array、struct 了

insert into table data_type
(name,age,address,friend,phone) values
("Bersd",
32,
map("山西","太原","陜西","西安"),
named_struct("name","aaa","age",33),
array(12345678888,18234567777,19243219998))

構(gòu)建map的時(shí)候,直接map()括號(hào)里面寫上key value 中間用逗號(hào)分割開(kāi)就行
構(gòu)建struct的時(shí)候,使用named_struct()括號(hào)里面寫屬性名,屬性值,之間用逗號(hào)隔開(kāi)
構(gòu)建array的時(shí)候,直接array()括號(hào)里面寫上數(shù)組內(nèi)元素就行了,各個(gè)元素之間用逗號(hào)隔開(kāi)

hive array<struct<x:decimal(15,12),y:decimal(15,13)>>,hive,hive,hadoop,數(shù)據(jù)倉(cāng)庫(kù),復(fù)雜數(shù)據(jù)類型,struct,map,array


向表中插入數(shù)據(jù)之后,那怎樣訪問(wèn)到struct、map、array 里面的數(shù)據(jù)呢?

select name,
         address["山西"] shanxi,
         friend.name friend_name,
         friend.age friend_age,
         phone[0] phone_first
from data_type;

可以看到,訪問(wèn)array和map的時(shí)候都是方括號(hào),然后里面寫數(shù)組下標(biāo)或者map的key,而訪問(wèn)struct的數(shù)據(jù)時(shí)要.屬性名這樣子訪問(wèn)

hive array<struct<x:decimal(15,12),y:decimal(15,13)>>,hive,hive,hadoop,數(shù)據(jù)倉(cāng)庫(kù),復(fù)雜數(shù)據(jù)類型,struct,map,array

擴(kuò)展以上復(fù)雜數(shù)據(jù)類型之間支持嵌套,也就是說(shuō)struct里面的數(shù)據(jù)類型可以寫map、array,array里面也可以放map、struct…

構(gòu)建struct還可以直接struct(“name”,“張三”,“age”,89)這樣他就會(huì)給四個(gè)默認(rèn)的列名,這個(gè)一般不用

hive array<struct<x:decimal(15,12),y:decimal(15,13)>>,hive,hive,hadoop,數(shù)據(jù)倉(cāng)庫(kù),復(fù)雜數(shù)據(jù)類型,struct,map,array文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-838909.html

到了這里,關(guān)于Hive中的復(fù)雜數(shù)據(jù)類型 - array、map、struct的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 大數(shù)據(jù)HIVE篇--控制hive任務(wù)中的map數(shù)和reduce數(shù)

    一、 控制hive任務(wù)中的map數(shù): 通常情況下,作業(yè)會(huì)通過(guò)input的目錄產(chǎn)生一個(gè)或者多個(gè)map任務(wù)。 主要的決定因素有: input的文件總個(gè)數(shù),input的文件大小,集群設(shè)置的文件塊大小(目前為128M, 可在hive中通過(guò)set dfs.block.size;命令查看到,該參數(shù)不能自定義修改); 舉例: a) 假設(shè)input目

    2024年02月05日
    瀏覽(16)
  • [hive]中的字段的數(shù)據(jù)類型有哪些

    Hive中提供了多種數(shù)據(jù)類型用于定義表的字段。以下是Hive中常見(jiàn)的數(shù)據(jù)類型: 布爾類型(Boolean):用于表示true或false。 字符串類型(String):用于表示文本字符串。 整數(shù)類型(Integers):包括TINYINT(1字節(jié)整數(shù))、SMALLINT(2字節(jié)整數(shù))、INT或INTEGER(4字節(jié)整數(shù))、BIGINT(8字節(jié)

    2024年02月05日
    瀏覽(27)
  • Rust 數(shù)據(jù)類型 之 結(jié)構(gòu)體(Struct)

    Rust 數(shù)據(jù)類型 之 結(jié)構(gòu)體(Struct)

    目錄 結(jié)構(gòu)體(Struct) 定義與聲明 結(jié)構(gòu)體定義 結(jié)構(gòu)體實(shí)例 結(jié)構(gòu)體分類 單元結(jié)構(gòu)體(Unit Struct) 元組結(jié)構(gòu)體(Tuple Struct) 具名結(jié)構(gòu)體(Named Struct) 結(jié)構(gòu)體嵌套 結(jié)構(gòu)體方法 例1:結(jié)構(gòu)體轉(zhuǎn)換為字符串描述 例2:矩形的周長(zhǎng)和面積 例3:結(jié)構(gòu)體字段的更新與輸出 關(guān)聯(lián)函數(shù) 結(jié)構(gòu)體

    2024年02月16日
    瀏覽(27)
  • 前端js 數(shù)據(jù)結(jié)構(gòu):對(duì)象 object、數(shù)組Array 、Map 的創(chuàng)建、增刪改 / 遍歷數(shù)據(jù)

    對(duì)象:由一組鍵值對(duì)組成的無(wú)序集合,可以通過(guò)鍵來(lái)獲取對(duì)應(yīng)的值。 每個(gè)鍵值對(duì)中的鍵是唯一的,值可以是任意類型的數(shù)據(jù)。 對(duì)象通常用來(lái)表示實(shí)體的屬性和方法。 1.1.1 對(duì)象字面量(最常用): {} 對(duì)象字面量:通過(guò)在大括號(hào) {} 中定義對(duì)象的屬性和方法來(lái)創(chuàng)建對(duì)象。 這是最簡(jiǎn)單

    2024年01月21日
    瀏覽(28)
  • List中的元素類型為Map,如何更新map中的內(nèi)容

    假設(shè)List 包含一個(gè) Map,形式如下: 現(xiàn)在,你想從 myList 中取出這個(gè) Map,然后追加一個(gè)新的鍵值對(duì),再將修改后的 Map 放回 myList。 最終,myList 中的 Map 將會(huì)被修改,新的鍵值對(duì)被追加進(jìn)去。 需要注意的是,如果你的 List 中僅有一個(gè)元素,直接使用 myList.get(0) 可以取出該元素。

    2024年02月10日
    瀏覽(19)
  • 深入探討 Go 語(yǔ)言中的 Map 類型

    Go 語(yǔ)言中的 map 類型是一種非常強(qiáng)大且常用的數(shù)據(jù)結(jié)構(gòu),它提供了一種鍵值對(duì)的映射關(guān)系。本篇博客將深入討論 Go 中的 map 類型,包括其基本用法、特性、以及一些最佳實(shí)踐。 1. 聲明和初始化 在 Go 中,你可以使用 make 函數(shù)來(lái)創(chuàng)建一個(gè)空的 map 。 map 的鍵和值可以是任意數(shù)據(jù)類

    2024年01月17日
    瀏覽(25)
  • 由 Array.includes 函數(shù)引發(fā)對(duì)引用數(shù)據(jù)類型的思考

    由 Array.includes 函數(shù)引發(fā)對(duì)引用數(shù)據(jù)類型的思考

    `` 數(shù)組的includes方法在日常的編程中比較常用到,其作用就是判斷某一數(shù)據(jù)是否在數(shù)組中,通常來(lái)說(shuō),數(shù)組中的數(shù)據(jù)如果是數(shù)字,布爾值,或者字符串的話,都是能夠進(jìn)行判斷的 例如: 如果是對(duì)象的話,那么會(huì)有一個(gè)有趣的現(xiàn)象發(fā)生 arr.includes({ age: 11, name: \\\'bob\\\'}) 這行,inclu

    2024年02月09日
    瀏覽(22)
  • golang 結(jié)構(gòu)體struct轉(zhuǎn)map實(shí)踐

    golang 結(jié)構(gòu)體struct轉(zhuǎn)map實(shí)踐

    ? 1、反射 type sign struct { ?? ?Name string `json:\\\"name,omitempty\\\"` ?? ?Age ?int ? ?`json:\\\"age,omitempty\\\"` } ? var s sign s.Name = \\\"csdn\\\" s.Age = 18 ? ? //方式1 反射 var data = make(map[string]interface{}) ? t := reflect.TypeOf(s) v := reflect.ValueOf(s) for i := 0; i t.NumField(); i++ { ?? ?data[t.Field(i).Name] = v.Field(i).Interfa

    2024年02月12日
    瀏覽(20)
  • nlohmann json:實(shí)現(xiàn)map和struct的互轉(zhuǎn)

    可以借助json實(shí)現(xiàn)map和struct的互轉(zhuǎn):

    2024年02月11日
    瀏覽(27)
  • 【python基礎(chǔ)】復(fù)雜數(shù)據(jù)類型-列表類型(元組)

    【python基礎(chǔ)】復(fù)雜數(shù)據(jù)類型-列表類型(元組)

    列表非常適合用于存儲(chǔ)在程序運(yùn)行期間可能變化的數(shù)據(jù)集。列表是可以修改的。 然而,有時(shí)候需要?jiǎng)?chuàng)建一系列不可修改的元素,元組可以滿足這種需求 python將不能修改的值稱為不可變的,而不可變的列表被稱為元組。 元組看起來(lái)猶如列表,但使用圓括號(hào)而不是方括號(hào)來(lái)標(biāo)識(shí)

    2024年02月07日
    瀏覽(34)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包