AdRedisFeatureConstructor.java 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. package examples.dataloader;
  2. import com.aliyun.odps.account.Account;
  3. import com.aliyun.odps.account.AliyunAccount;
  4. import com.aliyun.odps.data.Record;
  5. import com.tzld.piaoquan.ad.engine.commons.base.AdActionFeature;
  6. import com.tzld.piaoquan.ad.engine.commons.base.AdItemFeature;
  7. import com.tzld.piaoquan.ad.engine.commons.base.UserAdFeature;
  8. import com.tzld.piaoquan.data.base.ItemFeature;
  9. import com.tzld.piaoquan.data.base.RequestContext;
  10. import com.tzld.piaoquan.data.base.UserActionFeature;
  11. import com.tzld.piaoquan.data.base.UserFeature;
  12. import java.util.HashMap;
  13. import java.util.Map;
  14. public class AdRedisFeatureConstructor {
  15. private static final String BUCKET_NAME = "ali-recommend";
  16. private static final Map<String, String> ODPS_CONFIG = new HashMap<String, String>();
  17. static {
  18. ODPS_CONFIG.put("ENDPOINT", "http://service.cn.maxcompute.aliyun.com/api");
  19. ODPS_CONFIG.put("ACCESSID", "LTAIWYUujJAm7CbH");
  20. ODPS_CONFIG.put("ACCESSKEY", "RfSjdiWwED1sGFlsjXv0DlfTnZTG1P");
  21. }
  22. ;
  23. private static final Account account = new AliyunAccount(ODPS_CONFIG.get("ACCESSID"), ODPS_CONFIG.get("ACCESSKEY"));
  24. public static RequestContext constructRequestContext(Record record) {
  25. RequestContext requestContext = new RequestContext();
  26. requestContext.setApptype(record.getString("apptype"));
  27. requestContext.setMachineinfo_brand(record.getString("machineinfo_brand"));
  28. requestContext.setMachineinfo_model(record.getString("machineinfo_model"));
  29. requestContext.setMachineinfo_platform(record.getString("machineinfo_platform"));
  30. requestContext.setMachineinfo_sdkversion(record.getString("machineinfo_sdkversion"));
  31. requestContext.setMachineinfo_system(record.getString("machineinfo_system"));
  32. requestContext.setMachineinfo_wechatversion(record.getString("machineinfo_wechatversion"));
  33. requestContext.setDay(record.getString("ctx_day"));
  34. requestContext.setWeek(record.getString("ctx_week"));
  35. requestContext.setHour(record.getString("ctx_hour"));
  36. requestContext.setRegion(record.getString("ctx_region"));
  37. requestContext.setCity(record.getString("ctx_city"));
  38. return requestContext;
  39. }
  40. public static UserAdFeature constructUserFeature(Record record) {
  41. UserAdFeature userFeature = new UserAdFeature();
  42. userFeature.setMid(record.getString("mids"));
  43. // 1day features
  44. AdActionFeature userAd1dayActionFeature = new AdActionFeature();
  45. userAd1dayActionFeature.setOriginAdView(record.getString("ad_view_1day"));
  46. userAd1dayActionFeature.setOriginAdClick(record.getString("ad_click_1day"));
  47. userAd1dayActionFeature.setOriginAdConversion(record.getString("ad_conversion_1day"));
  48. userAd1dayActionFeature.setOriginCtr(record.getString("ad_ctr_1day"));
  49. userAd1dayActionFeature.setOriginCvr(record.getString("ad_cvr_1day"));
  50. userFeature.setDay1_cnt_features(userAd1dayActionFeature);
  51. // 3day features
  52. AdActionFeature userAd3dayActionFeature = new AdActionFeature();
  53. userAd1dayActionFeature.setOriginAdView(record.getString("ad_view_3day"));
  54. userAd1dayActionFeature.setOriginAdClick(record.getString("ad_click_3day"));
  55. userAd1dayActionFeature.setOriginAdConversion(record.getString("ad_conversion_3day"));
  56. userAd1dayActionFeature.setOriginCtr(record.getString("ad_ctr_3day"));
  57. userAd1dayActionFeature.setOriginCvr(record.getString("ad_cvr_3day"));
  58. userFeature.setDay3_cnt_features(userAd3dayActionFeature);
  59. // 7day features
  60. AdActionFeature userAd7dayActionFeature = new AdActionFeature();
  61. userAd1dayActionFeature.setOriginAdView(record.getString("ad_view_7day"));
  62. userAd1dayActionFeature.setOriginAdClick(record.getString("ad_click7day"));
  63. userAd1dayActionFeature.setOriginAdConversion(record.getString("ad_conversion_7day"));
  64. userAd1dayActionFeature.setOriginCtr(record.getString("ad_ctr_7day"));
  65. userAd1dayActionFeature.setOriginCvr(record.getString("ad_cvr_7day"));
  66. userFeature.setDay7_cnt_features(userAd7dayActionFeature);
  67. // 3month features
  68. AdActionFeature userAd3MonthActionFeature = new AdActionFeature();
  69. userAd3MonthActionFeature.setOriginAdView(record.getString("ad_view_3month"));
  70. userAd3MonthActionFeature.setOriginAdClick(record.getString("ad_click_3month"));
  71. userAd3MonthActionFeature.setOriginAdConversion(record.getString("ad_conversion_3month"));
  72. userAd3MonthActionFeature.setOriginCtr(record.getString("ad_ctr_3month"));
  73. userAd3MonthActionFeature.setOriginCvr(record.getString("ad_cvr_3month"));
  74. userFeature.setMonth3_cnt_features(userAd3MonthActionFeature);
  75. return userFeature;
  76. }
  77. public static AdItemFeature constructItemFeature(Record record) {
  78. AdItemFeature itemFeature = new AdItemFeature();
  79. itemFeature.setAdId(record.getString("adid"));
  80. // itemFeature.setAdCode(record.getString("adcode"));
  81. itemFeature.setCampaignId(record.getString("campaignid"));
  82. itemFeature.setAdvertiserId(record.getString("advertiserid"));
  83. itemFeature.setCreativeId(record.getString("creativeid"));
  84. // ad 维度特征
  85. AdActionFeature adIdActionFeature1day = new AdActionFeature();
  86. adIdActionFeature1day.setOriginAdView(record.getString("view_ad_1day"));
  87. adIdActionFeature1day.setOriginAdClick(record.getString("click_ad_1day"));
  88. adIdActionFeature1day.setOriginAdConversion(record.getString("conversion_ad_1day"));
  89. adIdActionFeature1day.setOriginCtr(record.getString("ctr_ad_1day"));
  90. adIdActionFeature1day.setOriginCvr(record.getString("cvr_ad_1day"));
  91. itemFeature.setDay1_cnt_features(adIdActionFeature1day);
  92. AdActionFeature adIdActionFeature3day = new AdActionFeature();
  93. adIdActionFeature3day.setOriginAdView(record.getString("view_ad_3day"));
  94. adIdActionFeature3day.setOriginAdClick(record.getString("click_ad_3day"));
  95. adIdActionFeature3day.setOriginAdConversion(record.getString("conversion_ad_3day"));
  96. adIdActionFeature3day.setOriginCtr(record.getString("ctr_ad_3day"));
  97. adIdActionFeature3day.setOriginCvr(record.getString("cvr_ad_3day"));
  98. itemFeature.setDay3_cnt_features(adIdActionFeature3day);
  99. AdActionFeature adIdActionFeature7day = new AdActionFeature();
  100. adIdActionFeature7day.setOriginAdView(record.getString("view_ad_7day"));
  101. adIdActionFeature7day.setOriginAdClick(record.getString("click_ad_7day"));
  102. adIdActionFeature7day.setOriginAdConversion(record.getString("conversion_ad_7day"));
  103. adIdActionFeature7day.setOriginCtr(record.getString("ctr_ad_7day"));
  104. adIdActionFeature7day.setOriginCvr(record.getString("cvr_ad_7day"));
  105. itemFeature.setDay7_cnt_features(adIdActionFeature7day);
  106. AdActionFeature adIdActionFeature3month = new AdActionFeature();
  107. adIdActionFeature3month.setOriginAdView(record.getString("view_ad_3month"));
  108. adIdActionFeature3month.setOriginAdClick(record.getString("click_ad_3month"));
  109. adIdActionFeature3month.setOriginAdConversion(record.getString("conversion_ad_3month"));
  110. adIdActionFeature3month.setOriginCtr(record.getString("ctr_ad_3month"));
  111. adIdActionFeature3month.setOriginCvr(record.getString("cvr_ad_3month"));
  112. itemFeature.setMonth3_cnt_features(adIdActionFeature3month);
  113. // TODO campaignId等维度特征
  114. return itemFeature;
  115. }
  116. }