您的位置:首页 > 运维架构 > Shell

用shell命令获得hdfs文件名并动态创建hive表

2017-10-11 17:24 459 查看
#获得文件夹下的文件名并循环每个文件名

files=`hadoop fs -ls /home/out/aidfilter |  awk -F " " '{print $8}'`

for name in $files
do

#awk命令按“/”分割第五个

filename=`echo $name  | awk -F "/" '{print $5}'`
echo $filename

#执行hive脚本 传递hive临时变量

hive -f test.hql -hivevar tablename=$filename

done

test.hql语句如下要放在你执行本语句的同目录下

create external table if not exists aid${tablename} (Id int,ChannelId int,ChannelName string,PlayDate string,MoniFlag4 string)row format delimited fields terminated by ',' location '/cm/tbl/aid${tablename}';
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: