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

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

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

你可能感兴趣的:(用shell命令获得hdfs文件名并动态创建hive表)