zhaohaipeng 7 месяцев назад
Родитель
Сommit
5317839aec
3 измененных файлов с 28 добавлено и 37 удалено
  1. 6 25
      ad/00_common.sh
  2. 12 12
      ad/01_ad_model_update.sh
  3. 10 0
      ad/holidays.txt

+ 6 - 25
ad/00_common.sh

@@ -5,31 +5,12 @@ is_holidays() {
         echo "0"
         return
     fi
-
-    # 定义节日日期
-    holidays=(
-        "20241001" 
-        "2024-10-01" 
-        "20241225" 
-        "2024-12-25" 
-        "20250101" 
-        "2025-01-01"
-        # 农历春节 
-        "20250129"
-        "2025-01-29"
-        "20250212"
-        "2025-02-12"
-    )
     
-    h=$1
-
-    # 遍历列表,判断元素是否存在
-    for item in "${holidays[@]}"; do
-        if [[ "$item" == "$h" ]]; then
-            echo "1"
-            return
-        fi
-    done
+    path=$(dirname $0)
 
-    echo "0"
+    if grep -w "$1" "${path}/holidays.txt" > /dev/null; then
+        echo "1"
+    else
+        echo "0"
+    fi 
 }

+ 12 - 12
ad/01_ad_model_update.sh

@@ -17,33 +17,33 @@ TRAIN_PATH=/dw/recommend/model/31_ad_sample_data_v4/
 BUCKET_FEATURE_PATH=/dw/recommend/model/33_ad_train_data_v4/
 TABLE=alg_recsys_ad_sample_all
 
-today_early_1="$(date -d '1 days ago' +%Y%m%d)"
-
 # 训练用的数据路径
 train_data_path=""
 
 # 评估用的数据路径
-predict_date_path=${BUCKET_FEATURE_PATH}/${today_early_1}
+predict_date_path=""
 
 init() {
-  local count=0
-  local handle_date="$(date -d '2 days ago' +%Y%m%d)"
 
-  # 循环获取前 n 天的非节日日期
-  while [[ $count -lt 7 ]]; do
-    # 获取当前日期的 MM-DD 部分
-    date_key=$(date -d "$handle_date -${count} day" +%Y%m%d)
+  predict_date_path=${BUCKET_FEATURE_PATH}/${today_early_1}
 
+  local count=1
+  local today_early_1="$(date -d '1 days ago' +%Y%m%d)"
+  # 循环获取前 n 天的非节日日期
+  while [[ $count -lt 8 ]]; do
+    date_key=$(date -d "$today_early_1 -${count} day" +%Y%m%d)
     # 判断是否是节日
     if [ $(is_holidays $date_key) -ge 0 ]; then
       # 如果不是节日,添加到数组中
-      train_data_path="${train_data_path},${BUCKET_FEATURE_PATH}/${date_key}"
+      train_data_path="${BUCKET_FEATURE_PATH}/${date_key},${train_data_path}"
       count=$((count + 1))
+    else
+      echo "日期: ${date_key}是节日,跳过"
     fi
   done
 
-  echo "train_data_path: ${train_data_path[@]}"
-
+  echo "train_data_path: ${train_data_path}"
+  echo "predict_date_path: ${predict_date_path}"
 }
 
 

+ 10 - 0
ad/holidays.txt

@@ -0,0 +1,10 @@
+20241001
+2024-10-01
+20241225
+2024-12-25
+20250101
+2025-01-0
+2025012
+2025-01-2
+2025021
+2025-02-12