1、调度中时间变量的定义
echo "程序开始"
#时间参数处理
today=$(date '+%Y-%m-%d')
month_first_day=${workdate:0:6}01
# 定义昨天时间,后面时间的定义格式
yesterday_date=$(date -d '-1 day' +'%Y%m%d')
# 定义一周前时间
lastweek_date=$(date -d '-8 day' +'%Y%m%d')
# 定义40天前时间
pol_add_date=$(date -d '-40 day' +'%Y-%m-%d')
echo ${today}
echo ${month_first_day}
echo ${yesterday_date}
echo ${lastweek_date}
2、检查代码
function checkExitCode(){
current_time=$(date '+%Y-%m-%d %H:%M:%S')
if [ "$1" = "0" ]
then
echo ${current_time},$2",succeed"
else
echo ${current_time},$2",fail"
exit 1;
fi
}
3、运行sql文件时利用--hivevar方式进行传参,例如:
hive-sql -f ndc_ocr_operation_careate_table.sql --hivevar upload_date=${upload_date}
其中表示传入参数:${upload_date},运行的sql文件中参数的编码形式样例如下:
select
*
from tableA where pt = '${upload_date}'
4、除直接运行sql建表外,同样可以通过调度将sql运行结果保存在指定文件夹中,例如:
hive-sql --outputformat=dsv --delimiterForDSV=$'\t' -f XXXX.sql > /xxx/data_${upload_date}.csv
其中--outputformat=dsv表示可自定义分割符,--delimiterForDSV=$'\t'表示以符号‘\t’为分割符,同时将以特定文件名data_${upload_date}.csv 保存对应地址。
hive运行时,相关参数介绍参见地址
https://blog.csdn.net/qq_24256877/article/details/106496306
5、当调度运行python文件时如何传参。直接在 .py 文件后面加入对应参数,例如
python your_script.py arg1 arg2 ... argn
调度中时间案例:
# 传入参数 yesterday_date,此处需要登陆安装有python的指定位置运行代码
ssh root@ip /xxx/anaconda3/python /xxx/xxx.py ${yesterday_date}
对应.py文件中,相关传入参数的编码形式如下:
import sys
yesterday = sys.argv[1] # 参数1
today = sys.argv[2]. # 参数2
def function(yesterday):
print(yesterday)