查看推荐结果id对应的名称脚本

#!/bin/bash


today=`date -d -0day '+%Y-%m-%d'`
# 传入外参 第一个参数1 ,第二个2
mobile=$1
if [ -z "$mobile" ]; then
echo "-------"
echo " WARN:param is empty, please add pin behind the shell..."
echo "-------"
exit;
fi

echo ""
echo "查询用户mobile: [ $mobile ] 的推荐信息"
echo ""
echo "starting..."
echo ""
echo "查询用户信息。。。"
echo ""

pin=`hive -S -e "select pdj_pin from ods_dj.ods_dj_usr_user_info where mobile=""$mobile"" "`

echo "当前用户信息: mobile [ $mobile ] , pin [ $pin ] "


echo ""
echo "hadoop fs -cat /daojia_algo/cjh/recommend/graph/s4_output_$today/*/* | grep $pin "
echo ""
echo "please waiting..."
echo ""

# 获取hdfs上的当前pin的推荐结果
result=`hadoop fs -cat /daojia_algo/cjh/recommend/graph/s4_output_$today/*/* | grep $pin`


#拆分结果为数组
OLD_IFS=$IFS
IFS=' '
result_arr=$result
IFS=$OLD_IFS

index=0

for x in $result_arr; do

if [ $(expr $index % 2) -eq 0 ]; then
echo "--------------------------------------------"
echo ""

扫描二维码关注公众号,回复: 2505796 查看本文章

#处理商家id : ${x##*_} 从左向右截取最后一个 _ 后的字符串
orgCode=${x##*_}

# hive -S 静默模式 不输出日志
orgName=`hive -S -e "select vender_name from ods_dj.ods_dj_cus_vender_settle_base where org_code='$orgCode'"`
echo "推荐商家信息 :$orgCode _ $orgName"
echo ""

else

IFS=',' sku_score_arr=$x

skus="10000001"

for sku_str in $sku_score_arr; do
#获取sku ${str%%:*} 从右向左截取最后一个 : 后的字符串
sku=${sku_str%%:*}
skus="$skus","$sku"
done

#echo "$skus"
sku_info=`hive -S -e "select id,skuname from ods_dj.ods_dj_prd_sku_main where id in(""$skus"") order by find_in_set(cast(id as string),'$skus') "`
echo "推荐商品结果信息 :"
echo "$sku_info"
echo ""

fi
index=$(expr $index + 1)

done

猜你喜欢

转载自www.cnblogs.com/peizhe123/p/9401816.html