|
@@ -0,0 +1,46 @@
|
|
|
|
+#!/bin/sh
|
|
|
|
+
|
|
|
|
+# 计算不同VID的平均分
|
|
|
|
+
|
|
|
|
+set -x
|
|
|
|
+
|
|
|
|
+predict_date=$1
|
|
|
|
+model_name=$2
|
|
|
|
+predict_dim=$4
|
|
|
|
+hdfs_path=$5
|
|
|
|
+
|
|
|
|
+PROJECT_HOME=/root/zhaohp/recommend-emr-dataprocess/
|
|
|
|
+MODEL_PATH=${PROJECT_HOME}/model/recommend/
|
|
|
|
+PREDICT_PATH=${PROJECT_HOME}/predict/recommend/
|
|
|
|
+
|
|
|
|
+HADOOP=/opt/apps/HADOOP-COMMON/hadoop-common-current/bin/hadoop
|
|
|
|
+FM_PREDICT=/root/sunmingze/alphaFM/bin/fm_predict
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+vids=(22895200 22751457 14146727 22847440 22927926 22858609 22974689 22563167 22959023 22970515 22946931 22994781 20720060 22979110)
|
|
|
|
+
|
|
|
|
+main() {
|
|
|
|
+ for(( i = 0; i < ${#vids[@]}; i++)) do
|
|
|
|
+ vid=${vids[i]}
|
|
|
|
+ $HADOOP fs -text ${hdfs_path}/${predict_date}/* | \
|
|
|
|
+ awk -F'\t' '{
|
|
|
|
+ if ($2 == 22895200) {
|
|
|
|
+ split($0, fields, "\t");
|
|
|
|
+ OFS="\t";
|
|
|
|
+ line="";
|
|
|
|
+ for (i=1; i<= length(fields); i++){
|
|
|
|
+ if (i != 2) {
|
|
|
|
+ line = (line ? line "\t" : "") fields[i];
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ print line
|
|
|
|
+ }
|
|
|
|
+ }' | \
|
|
|
|
+ ${FM_PREDICT} -m ${MODEL_PATH}/${model_name}.txt -dim ${predict_dim} -core 8 -out ${PREDICT_PATH}/${model_name}_${predict_date}_${vid}.txt
|
|
|
|
+ score_avg=`awk '{ sum += $2; count++ } END { if (count > 0) print sum / count }' ${PREDICT_PATH}/${model_name}_${predict_date}_${vid}.txt`
|
|
|
|
+ echo -e "VID: ${vid} 平均分计算结果: ${score_avg} \n\t模型路径: ${MODEL_PATH}/${model_name}.txt \n\tHDFS数据路径: ${hdfs_path}/${predict_date}/*"
|
|
|
|
+ done
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+main
|