溫馨提示×

溫馨提示×

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

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

python處理數(shù)據(jù),存進(jìn)hive表的方法

發(fā)布時間:2020-10-18 11:28:46 來源:腳本之家 閱讀:277 作者:小魚人兒 欄目:開發(fā)技術(shù)

首先,公司的小組長給了我一個任務(wù),把一個txt的文件中的部分內(nèi)容,存進(jìn)一個在hive中已有的表的相同結(jié)構(gòu)的表中。所以我的流程主要有三個,首先,把數(shù)據(jù)處理成和hive中表相同結(jié)構(gòu)的數(shù)據(jù),然后仿照已有的hive中表的結(jié)構(gòu)再創(chuàng)建一張新的數(shù)據(jù)表,最后把本地的txt文件上傳到hive中新建的數(shù)據(jù)表中。

1:已有的數(shù)據(jù)表的結(jié)構(gòu)和在hive表中的結(jié)構(gòu)完全對不上,下面的圖是原來hive中表的結(jié)構(gòu)和小組長給我的txt中表的結(jié)構(gòu):

python處理數(shù)據(jù),存進(jìn)hive表的方法

python處理數(shù)據(jù),存進(jìn)hive表的方法

大家可以看出,我們原來的hive中表的字段一共有17個,而組長給我的表中的字段一共有9個,其中最后一個為json結(jié)構(gòu),而且順序還不對,所以我們要進(jìn)行篩選,把對應(yīng)上的字段放到相應(yīng)位置,對應(yīng)不上的字段寫成空。

python處理數(shù)據(jù),存進(jìn)hive表的方法

大家要注意幾個地方,原來的數(shù)據(jù)是按照tab來劃分的,所以我們要數(shù)好對應(yīng)的tab的數(shù)目,好來計算出來數(shù)據(jù)的實際的位置信息,然后我們按照原來hive表中的數(shù)據(jù)順序,重新排列我們新建表的數(shù)據(jù)的順序,下面給大家看看結(jié)果:

python處理數(shù)據(jù),存進(jìn)hive表的方法

其中l(wèi)ine[0]=null,line[1]=102,大家以此類推。

3:我們把本地的txt文件導(dǎo)入到hive表中。首先我們要新建一個和原來hive表中相同結(jié)構(gòu)的數(shù)據(jù)表,然后把我們的數(shù)據(jù)導(dǎo)入到表中,

hive> creat table new_sft(x1 string,x2 string ,...,xn string) partitioned by (d string);

建好表之后,把數(shù)據(jù)導(dǎo)入到新表之中:

hive> load data local inpath‘/home/opendev/1.txt' into table new_sft;

最后給大家看看我的最終的結(jié)果:

python處理數(shù)據(jù),存進(jìn)hive表的方法

以上這篇python處理數(shù)據(jù),存進(jìn)hive表的方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持億速云。

向AI問一下細(xì)節(jié)

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

AI