目标:将goals中所有的表名判断一遍,是否在hive的ods层中
tmp="part-" # 这里只取了"part-"这个字段
#遍历文本文件,获取表名称
for i in `cat /home/goals.txt`
do
#获取hdfs上的以dt为时间分区的内容
temp1=`hadoop fs -ls /idp/src/ods/${i}/dt=$1`
#判断是否为空:这里用了grep来找出temp1字符串中是否有tmp("part-")这个子串
result=$(echo $temp1 | grep "${temp0}")
#创建每天执行任务的日志
cd /date
touch $1.txt
#判断是否有当日数据,都将结果输入创建的日志里
if [[ "$result" != "" ]]
then
echo "是" >> $1.txt
else
echo "否" >> $1.txt
fi
done
总结:我们在面对工作中编写程序的挑战,1.可以先试着完善功能,比如借鉴网络上其他人的实现方式。2.实现单个的测试,完成后再去做批量操作。3.最后再思考能否继续进一步优化。总之,我们采用小步快跑的方式完成开发挑战。