package examples.dataloader; import com.aliyun.odps.account.Account; import com.aliyun.odps.account.AliyunAccount; import com.aliyun.odps.data.Record; import com.tzld.piaoquan.ad.engine.commons.base.AdActionFeature; import com.tzld.piaoquan.ad.engine.commons.base.AdItemFeature; import com.tzld.piaoquan.ad.engine.commons.base.UserAdFeature; import com.tzld.piaoquan.data.base.ItemFeature; import com.tzld.piaoquan.data.base.RequestContext; import com.tzld.piaoquan.data.base.UserActionFeature; import com.tzld.piaoquan.data.base.UserFeature; import java.util.HashMap; import java.util.Map; public class AdRedisFeatureConstructor { private static final String BUCKET_NAME = "ali-recommend"; private static final Map ODPS_CONFIG = new HashMap(); static { ODPS_CONFIG.put("ENDPOINT", "http://service.cn.maxcompute.aliyun.com/api"); ODPS_CONFIG.put("ACCESSID", "LTAIWYUujJAm7CbH"); ODPS_CONFIG.put("ACCESSKEY", "RfSjdiWwED1sGFlsjXv0DlfTnZTG1P"); } ; private static final Account account = new AliyunAccount(ODPS_CONFIG.get("ACCESSID"), ODPS_CONFIG.get("ACCESSKEY")); public static RequestContext constructRequestContext(Record record) { RequestContext requestContext = new RequestContext(); requestContext.setApptype(record.getString("apptype")); requestContext.setMachineinfo_brand(record.getString("machineinfo_brand")); requestContext.setMachineinfo_model(record.getString("machineinfo_model")); requestContext.setMachineinfo_platform(record.getString("machineinfo_platform")); requestContext.setMachineinfo_sdkversion(record.getString("machineinfo_sdkversion")); requestContext.setMachineinfo_system(record.getString("machineinfo_system")); requestContext.setMachineinfo_wechatversion(record.getString("machineinfo_wechatversion")); requestContext.setDay(record.getString("ctx_day")); requestContext.setWeek(record.getString("ctx_week")); requestContext.setHour(record.getString("ctx_hour")); requestContext.setRegion(record.getString("ctx_region")); requestContext.setCity(record.getString("ctx_city")); return requestContext; } public static UserAdFeature constructUserFeature(Record record) { UserAdFeature userFeature = new UserAdFeature(); userFeature.setMid(record.getString("mids")); // 1day features AdActionFeature userAd1dayActionFeature = new AdActionFeature(); userAd1dayActionFeature.setOriginAdView(record.getString("ad_view_1day")); userAd1dayActionFeature.setOriginAdClick(record.getString("ad_click_1day")); userAd1dayActionFeature.setOriginAdConversion(record.getString("ad_conversion_1day")); userAd1dayActionFeature.setOriginCtr(record.getString("ad_ctr_1day")); userAd1dayActionFeature.setOriginCvr(record.getString("ad_cvr_1day")); userFeature.setDay1_cnt_features(userAd1dayActionFeature); // 3day features AdActionFeature userAd3dayActionFeature = new AdActionFeature(); userAd1dayActionFeature.setOriginAdView(record.getString("ad_view_3day")); userAd1dayActionFeature.setOriginAdClick(record.getString("ad_click_3day")); userAd1dayActionFeature.setOriginAdConversion(record.getString("ad_conversion_3day")); userAd1dayActionFeature.setOriginCtr(record.getString("ad_ctr_3day")); userAd1dayActionFeature.setOriginCvr(record.getString("ad_cvr_3day")); userFeature.setDay3_cnt_features(userAd3dayActionFeature); // 7day features AdActionFeature userAd7dayActionFeature = new AdActionFeature(); userAd1dayActionFeature.setOriginAdView(record.getString("ad_view_7day")); userAd1dayActionFeature.setOriginAdClick(record.getString("ad_click7day")); userAd1dayActionFeature.setOriginAdConversion(record.getString("ad_conversion_7day")); userAd1dayActionFeature.setOriginCtr(record.getString("ad_ctr_7day")); userAd1dayActionFeature.setOriginCvr(record.getString("ad_cvr_7day")); userFeature.setDay7_cnt_features(userAd7dayActionFeature); // 3month features AdActionFeature userAd3MonthActionFeature = new AdActionFeature(); userAd3MonthActionFeature.setOriginAdView(record.getString("ad_view_3month")); userAd3MonthActionFeature.setOriginAdClick(record.getString("ad_click_3month")); userAd3MonthActionFeature.setOriginAdConversion(record.getString("ad_conversion_3month")); userAd3MonthActionFeature.setOriginCtr(record.getString("ad_ctr_3month")); userAd3MonthActionFeature.setOriginCvr(record.getString("ad_cvr_3month")); userFeature.setMonth3_cnt_features(userAd3MonthActionFeature); return userFeature; } public static AdItemFeature constructItemFeature(Record record) { AdItemFeature itemFeature = new AdItemFeature(); itemFeature.setAdId(record.getString("adid")); // itemFeature.setAdCode(record.getString("adcode")); itemFeature.setCampaignId(record.getString("campaignid")); itemFeature.setAdvertiserId(record.getString("advertiserid")); itemFeature.setCreativeId(record.getString("creativeid")); // ad 维度特征 AdActionFeature adIdActionFeature1day = new AdActionFeature(); adIdActionFeature1day.setOriginAdView(record.getString("view_ad_1day")); adIdActionFeature1day.setOriginAdClick(record.getString("click_ad_1day")); adIdActionFeature1day.setOriginAdConversion(record.getString("conversion_ad_1day")); adIdActionFeature1day.setOriginCtr(record.getString("ctr_ad_1day")); adIdActionFeature1day.setOriginCvr(record.getString("cvr_ad_1day")); itemFeature.setDay1_cnt_features(adIdActionFeature1day); AdActionFeature adIdActionFeature3day = new AdActionFeature(); adIdActionFeature3day.setOriginAdView(record.getString("view_ad_3day")); adIdActionFeature3day.setOriginAdClick(record.getString("click_ad_3day")); adIdActionFeature3day.setOriginAdConversion(record.getString("conversion_ad_3day")); adIdActionFeature3day.setOriginCtr(record.getString("ctr_ad_3day")); adIdActionFeature3day.setOriginCvr(record.getString("cvr_ad_3day")); itemFeature.setDay3_cnt_features(adIdActionFeature3day); AdActionFeature adIdActionFeature7day = new AdActionFeature(); adIdActionFeature7day.setOriginAdView(record.getString("view_ad_7day")); adIdActionFeature7day.setOriginAdClick(record.getString("click_ad_7day")); adIdActionFeature7day.setOriginAdConversion(record.getString("conversion_ad_7day")); adIdActionFeature7day.setOriginCtr(record.getString("ctr_ad_7day")); adIdActionFeature7day.setOriginCvr(record.getString("cvr_ad_7day")); itemFeature.setDay7_cnt_features(adIdActionFeature7day); AdActionFeature adIdActionFeature3month = new AdActionFeature(); adIdActionFeature3month.setOriginAdView(record.getString("view_ad_3month")); adIdActionFeature3month.setOriginAdClick(record.getString("click_ad_3month")); adIdActionFeature3month.setOriginAdConversion(record.getString("conversion_ad_3month")); adIdActionFeature3month.setOriginCtr(record.getString("ctr_ad_3month")); adIdActionFeature3month.setOriginCvr(record.getString("cvr_ad_3month")); itemFeature.setMonth3_cnt_features(adIdActionFeature3month); // TODO campaignId等维度特征 return itemFeature; } }