hive 創(chuàng)建表:
# 創(chuàng)建分區(qū)表
create table tt2(
name String,
score Int,
dt String
)partitioned by(dx String) row format delimited fields terminated by '|';
# 創(chuàng)建外部表
# 創(chuàng)建分區(qū)表
create external table tt2(
name String,
score Int,
dt String
)partitioned by(dx String) row format delimited fields terminated by '|';
# 創(chuàng)建繁雜集合的分區(qū)表
create table test(
name string,
friends array<string>,
children map<string, int>,
address struct<street:string, city:string>
)
row format delimited fields terminated by ','
collection items terminated by '_'
map keys terminated by ':'
lines terminated by '\n';
# 創(chuàng)建多分隔符的表
create table test_toutiao(
id string
,tag1 int
,tag2 string
,question string
,answer string
) ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.MultiDelimitSerDe'
WITH SERDEPROPERTIES ("field.delim"="_!_");
hive 執(zhí)行:
# 命令行
hive -e "select * from tt"
# 傳參數(shù)
dtx="2020-03-09"
hive -e "use test;select * from tt where dt='${dtx}' " 注意字符串帶引號
# sql 文件
hive -f test2.sql
# 傳參數(shù)
hive -hiveconf dtx=`date +"%Y-%m-%d"` -f test2.sql;
=========================
hive 調(diào)用Python腳本的時候强戴,在root目錄下俺亮,在using 'python xxx.py' 不用加絕對路徑阶女;在其他目錄下可加也可以不加絕對路徑
樣例:
原因:可能是權(quán)限問題
insert overwrite table xt1 select transform (name, score, dt) using 'python /opt/nifi-tempdata/h.py' as (name, score, dt) from tt3;
2021-03-15 sql變量的使用
hive -hivevar execdt="2020-06-30" -f ./test2.sql
# test2.sql 中的代碼:
select * from lt_test.ods_jizhan_channeng_dd where dt='${execdt}' limit 10;
2020-03-16:
beeline 通過jdbc連接hive
beeline -u jdbc:hive2://ip:port/default -n username -p password
(-n,-p 都是登錄服務(wù)器的密碼)
# port 是thrift 端口挤渔,默認(rèn)為10000
# -n 是用戶名
# -p 是密碼
noted: 如果沒有賬戶和密碼很有可能連接不上