溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

hive 分區(qū)partition表的創(chuàng)建和數(shù)據(jù)導入方法

發(fā)布時間:2021-07-05 16:23:50 來源:億速云 閱讀:426 作者:chen 欄目:編程語言

本篇內(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ù)學習!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI