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

来源:互联网 发布:js隐藏手机号码中间 编辑:程序博客网 时间:2024/06/05 04:07

#获得文件夹下的文件名并循环每个文件名

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}';

原创粉丝点击