如何用shell脚本判断hive数据库是否导入dt分区的数据?
目标:将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
如何用python去除文件目录下所有文件的首行?
1.为何使用python去除?shell脚本同样能实现,看具体的需求,shell适合单个文件,python便于遍历整个文件夹。
2.如何使用删除首行功能?搭积木式,将搜索到的遍历功能和删除首行功能放在一起。
#conding=utf8
import fileinput
import os
# 获取目录下的全部文件
g = os.walk(r"/test")
for path,dir_list,file_list in g:
for file_name in file_list:
join = os.path.join(path, file_name)
#逐个删除文件的第一行
for line in fileinput.input(join, inplace=1):
if not fileinput.isfirstline():
print(line.replace('\n',''))
总结:我们在面对工作中编写程序的挑战,1.可以先试着完善功能,比如借鉴网络上其他人的实现方式。2.实现单个的测试,完成后再去做批量操作。3.最后再思考能否继续进一步优化。总之,我们采用小步快跑的方式完成开发挑战。