您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“hive 分區(qū)partition表的創(chuàng)建和數(shù)據(jù)導入方法”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“hive 分區(qū)partition表的創(chuàng)建和數(shù)據(jù)導入方法”吧!
分區(qū)創(chuàng)建與數(shù)據(jù)導入的步驟:
1.創(chuàng)建分區(qū)表(以外部分區(qū)表為例)
create external table if not exists dividends(
ymd string,
dividend string)
partitioned by (ex_change string,symbol string)
row format delimited fields terminated by ',';
2.創(chuàng)建還有分區(qū)表字段與分區(qū)字段的內(nèi)部表(管理表)
內(nèi)部表的字段應該包含紅色字段,建表略
3.將數(shù)據(jù)導入2中創(chuàng)建的表。load data……
4.通過內(nèi)部表靜態(tài)或者動態(tài)將數(shù)據(jù)插入分區(qū)表
非常重要的動態(tài)分區(qū)屬性:
hive.exec.dynamic.partition 是否啟動動態(tài)分區(qū)。false(不開啟) true(開啟)默認是 false
hive.exec.dynamic.partition.mode 打開動態(tài)分區(qū)后,動態(tài)分區(qū)的模式,有 strict和 nonstrict 兩個值可選,strict 要求至少包含一個靜態(tài)分區(qū)列,nonstrict則無此要求。各自的好處,大家自己查看哈。
hive.exec.max.dynamic.partitions 允許的最大的動態(tài)分區(qū)的個數(shù)。可以手動增加分區(qū)。默認1000
hive.exec.max.dynamic.partitions.pernode 一個 mapreduce job所允許的最大的動態(tài)分區(qū)的個數(shù)。默認是100
在進行動態(tài)分區(qū)插入時,經(jīng)常會因為這些配置參數(shù)的值報錯,所以習慣查看日志明確錯誤。我遇到的報錯信息:
Caused by: org.apache.hadoop.hive.ql.metadata.HiveFatalException: [Error 20004]: Fatal error occurred when node tried to create too many dynamic partitions. The maximum number of dynamic partitions is controlled by hive.exec.max.dynamic.partitions and hive.exec.max.dynamic.partitions.pernode. Maximum was set to: 100
表名由于分區(qū)數(shù)量超值,所以通過修改參數(shù)值就能夠避免這樣的錯誤了。
1)靜態(tài)插入數(shù)據(jù)
注意:方框中的字段位置以及個數(shù)一定要與分區(qū)表(dividends)的字段位置以及個數(shù)相符合,否則會報出類似如下的錯誤
FAILED: SemanticException [Error 10044]: Line 1:23 Cannot insert into target table because column number/types are different 'symbol': Table insclause-0 has 3 columns, but query has 4 columns.
從上面錯誤提示看出,查詢的表有4列,而目標表格(也就是需要插入數(shù)據(jù)的表格)有3列,由于列的數(shù)目不一樣,導致了上面的語句不能成功運行,所以我們需要保證查詢結果列的數(shù)目和需要插入數(shù)據(jù)表格的列數(shù)目一致。
2)動靜態(tài)混合分區(qū)插入
截圖有錯誤信息,相信大家知道這是什么原因了吧?。?!
一定要注意動態(tài)分區(qū)參數(shù)值以及1)的注意事項
3)動態(tài)分區(qū)插入
截圖中的報錯??!是配置參數(shù)值問題哦!
到此,相信大家對“hive 分區(qū)partition表的創(chuàng)建和數(shù)據(jù)導入方法”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關內(nèi)容可以進入相關頻道進行查詢,關注我們,繼續(xù)學習!
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。