国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 操作系統(tǒng) > 正文

hive[3] 數(shù)據(jù)類型和文件格式

2024-06-28 13:22:33
字體:
供稿:網(wǎng)友
hive[3] 數(shù)據(jù)類型和文件格式Hive 支持關(guān)系型數(shù)據(jù)庫中的大多數(shù)據(jù)基本數(shù)據(jù)類型,同時也支持3種集合類型;3.1 Hive 的基本數(shù)據(jù)類型支持多種不同他度的整形和浮點型數(shù)據(jù)類型,具體如下(全都是保留字):tinyint 1byte 有符號整數(shù)smalint 2byte有符號號數(shù)int 4byte有符號號數(shù)bigint 8byte有符號號數(shù)boolean 布爾類型, true 或者 falsefloat 單精度浮點數(shù)double 雙精度浮點數(shù)string 字符串timpstamp 整數(shù),浮點數(shù)或字符串binary 字節(jié)數(shù)組需要注意的是:這些都是java 中的接口的實現(xiàn),因此這些類型的具體行為細節(jié)和java中對應的類型是完全一致的;如果用戶在查詢中將一個 float 類型列和一個 double 類型的列作對經(jīng),Hive 會隱式的將類型轉(zhuǎn)換為兩個類型中較大的那個類型;cast (s AS INT) 將 s 轉(zhuǎn)換成 int 類型3.2 集合數(shù)據(jù)類型Hive 中的列支持使用 struct、map、array 集合數(shù)據(jù)類型,例:STRUCT 列類型為struct{first STRING,last STRING} 如: struct('john','Doe')MAP 是一組鍵值對集合 字段名[last]獲取值 如:map('first','Join','last','Doe')ARRAY是具有相關(guān)同類型和名稱的變量的集合['John','Doe'] 如:Array(['John','Doe'])例如:員工關(guān)系表CREATE TABLE employees(name STRING, --名稱salary float, --薪水subordinates array<string>, --下屬員工deductions map<string,float>, --發(fā)薪水時從工工資中扣除掉的內(nèi)容(如:稅收 ,社保,公積金等)address struct<street:string,city:string,stat:string,zip:int> --員工家庭地址)3.3 文本文件數(shù)據(jù)編碼以逗號分隔值(CSV)或以制表符分隔值(TSV)文件;缺點,就是文件中那些不需要作為分隔符處理的逗號或者制表符要小心使用;Hive 中默認的記錄和字段分隔符:/n 文本文件的換行符^A 分隔字段(列),在 CREATE TABLE 語句中可以使用八進制編碼(/001)表示^B 分隔 ARRAY 或者 STRUCT 中的元素,或用于 MAP 中鍵值對之間的分隔,使用八進制編碼(/002)表示^C 用于 MAP 中鍵和值之間的分隔,使用八進制編碼(/003)表示也可以不使用這些默認的分隔符,而指定其他的分隔符,例如:CREATE TABLE employees( name STRING, salary FLOAT, subordinates ARRAY(STRING), deductions MAP(STRING,FLOAT), address STRUCT<street:STRING,city:STRING,state:STRING,zip:INT>)ROW FORMAT DELIMITED --必須寫在下面的子句之前(stored as 除外)FILEDS TERMINATED BY '/001' --Hive 將使用 ^A 做為列分隔符COLLECTION ITEMS TERMINATED BY '/002' --表明Hive 將使用 ^B 做為集合元素間分隔符MAP KEYS TERMINATED BY '/003' --表明Hive 將使用 ^C 做為 MAP 的鍵值之間的分隔符LINES TERMINATED BY '/n' --下面這兩句表明不需要ROW FORMAT DELIMITED 做關(guān)鍵字STORED AS TEXTFILE; --此句很少被用到注意:到目錄前為止 Hive 對于 linesterminated by 公支持 /n 也就是說行與行之間分隔符只能是 /nHive 還支持其他類型的文本格式,15節(jié)課再細說定義一個表是按照逗號來分隔:create table some_data(fistr float, second float, third float) row format delimited fileds terminated by ',';3.4 讀時模式Hive 在數(shù)據(jù)寫入數(shù)據(jù)庫時不會對對模式進行檢查,也不會在數(shù)據(jù)加載時進行驗證,而是在查詢時進行,也就是讀取時模式;如果模式和文件內(nèi)容并不匹配,每行記錄中的字段個數(shù)少于對應的模式中定義的字段個數(shù)的話,那么用戶將會看到查詢結(jié)果中有很多 null 值 ;如果某些字段是數(shù)值型的,但Hive 在讀取的時候發(fā)現(xiàn)存在非數(shù)值型的字符串值的話,將返回 null 值,除此情況 Hive 會將極力嘗試盡可能地將錯誤恢復過來;
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 遵义县| 乐都县| 左权县| 大庆市| 府谷县| 宁蒗| 宁远县| 孟连| 长治市| 工布江达县| 普兰店市| 黎川县| 榆树市| 恩平市| 吉林省| 昆山市| 广饶县| 鹤岗市| 凤台县| 杨浦区| 大城县| 游戏| 沙湾县| 曲松县| 阜阳市| 乃东县| 玉田县| 邵东县| 宿迁市| 监利县| 万山特区| 苍南县| 和平区| 平和县| 山东| 临武县| 米泉市| 怀化市| 华亭县| 康定县| 凉城县|