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.AdRequestContext; import com.tzld.piaoquan.ad.engine.commons.base.UserAdFeature; import com.tzld.piaoquan.ad.engine.commons.base.AdItemFeature; import java.util.HashMap; import java.util.Map; public class AdSampleConstructor { 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 AdRequestContext constructRequestContext(Record record) { AdRequestContext requestContext = new AdRequestContext(); requestContext.setApptype(record.getString("apptype")); requestContext.setMachineinfoBrand(record.getString("machineinfo_brand")); requestContext.setMachineinfoModel(record.getString("machineinfo_model")); requestContext.setMachineinfoSdkversion(record.getString("machineinfo_sdkversion")); requestContext.setMachineinfoWchatversion(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("province")); requestContext.setCity(record.getString("city")); return requestContext; } public static UserAdFeature constructUserFeature(Record record) { UserAdFeature userFeature = new UserAdFeature(); userFeature.setMid(record.get("machinecode").toString()); // 1day features AdActionFeature user1dayActionFeature = new AdActionFeature(); user1dayActionFeature.setAdView(record.getString("user_view_1day")); user1dayActionFeature.setAdClick(record.getString("user_click_1day")); user1dayActionFeature.setAdConversion(record.getString("user_conversion_1day")); user1dayActionFeature.setCtr(record.getString("user_ctr_1day")); user1dayActionFeature.setCvr(record.getString("user_cvr_1day")); userFeature.setDay1_cnt_features(user1dayActionFeature); // 3day features AdActionFeature user3dayActionFeature = new AdActionFeature(); user3dayActionFeature.setAdView(record.getString("user_view_3day")); user3dayActionFeature.setAdClick(record.getString("user_click_3day")); user3dayActionFeature.setAdConversion(record.getString("user_conversion_3day")); user3dayActionFeature.setCtr(record.getString("user_ctr_3day")); user3dayActionFeature.setCvr(record.getString("user_cvr_3day")); userFeature.setDay3_cnt_features(user3dayActionFeature); // 7day features AdActionFeature user7dayActionFeature = new AdActionFeature(); user7dayActionFeature.setAdView(record.getString("user_view_7day")); user7dayActionFeature.setAdClick(record.getString("user_click7day")); user7dayActionFeature.setAdConversion(record.getString("user_conversion_7day")); user7dayActionFeature.setCtr(record.getString("user_ctr_7day")); user7dayActionFeature.setCvr(record.getString("user_cvr_7day")); userFeature.setDay3_cnt_features(user7dayActionFeature); // 3month features AdActionFeature user3MonthActionFeature = new AdActionFeature(); user3MonthActionFeature.setAdView(record.getString("user_view_3month")); user3MonthActionFeature.setAdClick(record.getString("user_click_3month")); user3MonthActionFeature.setAdConversion(record.getString("user_conversion_3month")); user3MonthActionFeature.setCtr(record.getString("user_ctr_3month")); user3MonthActionFeature.setCvr(record.getString("user_cvr_3month")); userFeature.setDay1_cnt_features(user1dayActionFeature); return userFeature; } public static AdItemFeature constructItemFeature(Record record) { AdItemFeature itemFeature = new AdItemFeature(); itemFeature.setAdId(record.getString("adid")); itemFeature.setAdvertiserId(record.getString("advertiserid")); itemFeature.setCampaignId(record.getString("campaignid")); itemFeature.setCreativeId(record.getString("creativeid")); // 1day features AdActionFeature user1dayActionFeature = new AdActionFeature(); user1dayActionFeature.setAdView(record.getString("ad_view_1day")); user1dayActionFeature.setAdClick(record.getString("ad_click_1day")); user1dayActionFeature.setAdConversion(record.getString("ad_conversion_1day")); user1dayActionFeature.setCtr(record.getString("ad_ctr_1day")); user1dayActionFeature.setCvr(record.getString("ad_cvr_1day")); itemFeature.setDay1_cnt_features(user1dayActionFeature); // 3day features AdActionFeature user3dayActionFeature = new AdActionFeature(); user3dayActionFeature.setAdView(record.getString("ad_view_3day")); user3dayActionFeature.setAdClick(record.getString("ad_click_3day")); user3dayActionFeature.setAdConversion(record.getString("ad_conversion_3day")); user3dayActionFeature.setCtr(record.getString("ad_ctr_3day")); user3dayActionFeature.setCvr(record.getString("ad_cvr_3day")); itemFeature.setDay3_cnt_features(user3dayActionFeature); // 7day features AdActionFeature user7dayActionFeature = new AdActionFeature(); user7dayActionFeature.setAdView(record.getString("ad_view_7day")); user7dayActionFeature.setAdClick(record.getString("ad_click_7day")); user7dayActionFeature.setAdConversion(record.getString("ad_conversion_7day")); user7dayActionFeature.setCtr(record.getString("ad_ctr_7day")); user7dayActionFeature.setCvr(record.getString("ad_cvr_7day")); itemFeature.setDay3_cnt_features(user7dayActionFeature); // 3month features AdActionFeature user3MonthActionFeature = new AdActionFeature(); user3MonthActionFeature.setAdView(record.getString("ad_view_3month")); user3MonthActionFeature.setAdClick(record.getString("ad_click_3month")); user3MonthActionFeature.setAdConversion(record.getString("ad_conversion_3month")); user3MonthActionFeature.setCtr(record.getString("ad_ctr_3month")); user3MonthActionFeature.setCvr(record.getString("ad_cvr_3month")); itemFeature.setDay1_cnt_features(user1dayActionFeature); return itemFeature; } }