hive常用語法

一罩句、表的操作

1樟结、創(chuàng)建表、分區(qū)伺糠、分隔符

create table table_name(

? name string,

? age string)

partitioned by (

dt string)

row format delimited fields terminated by '\t';

dt為分區(qū)檀轨,并且指定分隔符為\t? hive默認(rèn)分隔符\001

2胸竞、刪除表數(shù)據(jù)、刪除表和sql相同?

truncate table ,drop table;

3参萄、刪除表的分區(qū)

alter table table_name drop if exists partition? (dt = 20180808);

4卫枝、表添加字段

alter table?table_name?add?columns(c1 int,?c2 int);

5、分區(qū)表表結(jié)構(gòu)的復(fù)制和包含數(shù)據(jù)的復(fù)制

二讹挎、數(shù)據(jù)的導(dǎo)入和導(dǎo)出

1校赤、從本地文件加載

load data local inpath '/home/coco/demo/*' into table test_table

2、hive查詢數(shù)據(jù)寫入到本地文件 并且指定分隔符

insert overwrite local directory '/home/coco/output' row format delimited fields terminated by '\t' select age,count(*) from test_name group by age order by age;

3筒溃、sqoop導(dǎo)入

sqoop import --connect jdbc:mysql://10.1.1.1:3306/user_center --username root --password 123456 --query "select * from user where? age=18 and \$CONDITIONS " --hive-import --target-dir /user/coco/user_all/city=beijing --hive-database user_center --hive-table test_table --split-by age --hive-partition-key city --hive-partition-value beijing?--fields-terminated-by '\t'

\CONDITIONS為必填的??

?jdbc:mysql:// mysql地址/端口/庫名?--username mysql用戶名??--password mysql密碼?--query 設(shè)為指定sql查詢??--target-dir目標(biāo)集群路徑(可以查看表所在的集群路徑,分區(qū))??--hive-database hive的庫名?--hive-table hive的表名??--split-by 分割字段(盡量選取均勻分布的字段)?--hive-partition-key 如果有是分區(qū)表分區(qū)的key??--hive-partition-value 分區(qū)的值?--fields-terminated-by 分隔符

sqoop導(dǎo)入的防止只支持單分區(qū)表马篮,如果需要導(dǎo)入多分區(qū)表,需要復(fù)雜些提供兩種思路

直接把數(shù)據(jù)導(dǎo)入到表所在的路徑怜奖,然后加載分區(qū)

或者建一個臨時的不分區(qū)表浑测,通過動態(tài)分區(qū)加載到分區(qū)表中

sqoop導(dǎo)入出錯 報java.sql.SQLException: Streaming result set com.mysql.jdbc.RowDataDynamic@5f058f00 is still active. No statements may be...

--driver com.mysql.jdbc.Driver

接著出現(xiàn)The last packet sent successfully to the server was 0 milliseconds a

jdbc:mysql://10.1.1.1:3306/user_center?autoReconnect=true

4、sqoop導(dǎo)出

sqoop export --connect "jdbc:mysql://10.1.1.1:3306:3306/user_center?useUnicode=true&characterEncoding=utf-8" --username root --password 123456 --table user --export-dir /user/hive/warehouse/user_center.db/user_center --input-fields-terminated-by '\001' --input-null-string '\\N' --input-null-non-string '\\N'

三歪玲、數(shù)據(jù)處理

1迁央、hive的去重

select * from( select *,row_number() over (partition by source_url order by phone asc) num from spider) t where t.num=1

partition by 后是需要去重的字段,可以添加多個滥崩,逗號分割岖圈。order by根據(jù)什么字段排序,決定著去重的時候保留去重哪些條數(shù)據(jù)钙皮,保留那一條數(shù)據(jù)

2蜂科、hive動態(tài)分區(qū)

hive -v -e "

? use test_db;

? set hive.exec.dynamic.partition=true;

? set hive.exec.dynamic.partition.mode=nonstrict;

? set hive.cli.print.header=true;

? insert overwrite table user_table partition(city,dt) select a,b,c,city,dt from user_temp where age>18;

"

主要設(shè)置

set hive.exec.dynamic.partition=true;

set hive.exec.dynamic.partition.mode=nonstrict;

查詢的最后字段就是分區(qū)的字段

3、hive引用python腳本處理數(shù)據(jù)

hive -v -e"

use test_db;

set hive.cli.print.header=false;

set hive.exec.dynamic.partition.mode=nonstrict;

set mapreduce.map.memory.mb=1025;

set mapreduce.reduce.memory.mb=1025;

add file /data/coco/house_.py;

drop table if exists test_table;

create table test_table as

SELECT TRANSFORM(a,b,c,d,e,f) USING 'house_.py'

AS a,b,c FROM user_table;"

python腳本中

for line in sys.stdin:

? ? (a,b,c) = line.split('\t')

? ? d=a+b

? ? e=1

? ? f=2

????print '\t'.join([a,b,c,d,e,f])

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末株灸,一起剝皮案震驚了整個濱河市崇摄,隨后出現(xiàn)的幾起案子擎值,更是在濱河造成了極大的恐慌慌烧,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,000評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鸠儿,死亡現(xiàn)場離奇詭異屹蚊,居然都是意外死亡厕氨,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,745評論 3 399
  • 文/潘曉璐 我一進店門汹粤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來命斧,“玉大人,你說我怎么就攤上這事嘱兼」幔” “怎么了?”我有些...
    開封第一講書人閱讀 168,561評論 0 360
  • 文/不壞的土叔 我叫張陵芹壕,是天一觀的道長汇四。 經(jīng)常有香客問我,道長踢涌,這世上最難降的妖魔是什么通孽? 我笑而不...
    開封第一講書人閱讀 59,782評論 1 298
  • 正文 為了忘掉前任,我火速辦了婚禮睁壁,結(jié)果婚禮上背苦,老公的妹妹穿的比我還像新娘。我一直安慰自己潘明,他們只是感情好行剂,可當(dāng)我...
    茶點故事閱讀 68,798評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著钳降,像睡著了一般硼讽。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上牲阁,一...
    開封第一講書人閱讀 52,394評論 1 310
  • 那天固阁,我揣著相機與錄音,去河邊找鬼城菊。 笑死备燃,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的凌唬。 我是一名探鬼主播并齐,決...
    沈念sama閱讀 40,952評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼客税!你這毒婦竟也來了况褪?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,852評論 0 276
  • 序言:老撾萬榮一對情侶失蹤更耻,失蹤者是張志新(化名)和其女友劉穎测垛,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體秧均,經(jīng)...
    沈念sama閱讀 46,409評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡食侮,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,483評論 3 341
  • 正文 我和宋清朗相戀三年号涯,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片锯七。...
    茶點故事閱讀 40,615評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡链快,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出眉尸,到底是詐尸還是另有隱情域蜗,我是刑警寧澤,帶...
    沈念sama閱讀 36,303評論 5 350
  • 正文 年R本政府宣布噪猾,位于F島的核電站地消,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏畏妖。R本人自食惡果不足惜脉执,卻給世界環(huán)境...
    茶點故事閱讀 41,979評論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望戒劫。 院中可真熱鬧半夷,春花似錦、人聲如沸迅细。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,470評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽茵典。三九已至湘换,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間统阿,已是汗流浹背彩倚。 一陣腳步聲響...
    開封第一講書人閱讀 33,571評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留扶平,地道東北人帆离。 一個月前我還...
    沈念sama閱讀 49,041評論 3 377
  • 正文 我出身青樓,卻偏偏與公主長得像结澄,于是被迫代替她去往敵國和親哥谷。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,630評論 2 359

推薦閱讀更多精彩內(nèi)容