Przeglądaj źródła

增加跳过字段

xueyiming 5 dni temu
rodzic
commit
1535ebf200

+ 8 - 5
src/main/scala/com/aliyun/odps/spark/examples/makedata_ad/v20240718/makedata_ad_33_bucketDataFromOriginToHive_20260703.scala

@@ -41,7 +41,7 @@ object makedata_ad_33_bucketDataFromOriginToHive_20260703 {
     val idDefaultValue = param.getOrElse("idDefaultValue", "1.0").toDouble
     val filterNames = param.getOrElse("filterNames", "").split(",").filter(_.nonEmpty).toSet
     val filterAdverIds = param.getOrElse("filterAdverIds", "").split(",").filter(_.nonEmpty).toSet
-    val whatLabel = param.getOrElse("whatLabel", "ad_is_conversion")
+//    val whatLabel = param.getOrElse("whatLabel", "ad_is_conversion")
     val negSampleRate = param.getOrElse("negSampleRate", "1").toDouble
     // 分割样本集的比例,splitRate部分输出至outputTable,补集输出至outputTable2(如果outputTable2不为空)
     val splitRate = param.getOrElse("splitRate", "0.9").toDouble
@@ -166,8 +166,12 @@ object makedata_ad_33_bucketDataFromOriginToHive_20260703 {
               !filterAdverIds.contains(adverId)
             })
             .filter(record => {
-              val label = getJsonObject(record, "label_json").getString(whatLabel).toInt
-              label > 0 || Random.nextDouble() < negSampleRate
+              val has_scan_label = getJsonObject(record, "label_json").getString("ad_is_scan").toInt
+              val has_addwechat_label = getJsonObject(record, "label_json").getString("ad_is_addwechat").toInt
+              val has_conversion_label = getJsonObject(record, "label_json").getString("ad_is_conversion").toInt
+              val label = has_scan_label > 0 || has_addwechat_label > 0 || has_conversion_label > 0
+
+              label || Random.nextDouble() < negSampleRate
             })
             .map(record => {
               val featureMap = new JSONObject()
@@ -715,14 +719,13 @@ object makedata_ad_33_bucketDataFromOriginToHive_20260703 {
               val labels = new JSONObject
               val landing = featureMap.getString("landing")
               val labelJson: JSONObject = getJsonObject(record, "label_json") // label_json
-
               if (!labelJson.isEmpty) {
                 labels.put("has_scan", labelJson.getInteger("ad_is_scan"))
                 labels.put("has_addwechat", labelJson.getInteger("ad_is_addwechat"))
                 labels.put("has_scan_addwechat", labelJson.getInteger("ad_is_addwechat"))
                 if (landing == "3") {
                   labels.put("is_landing3", 1)
-                  if (labelJson.getIntValue("ad_is_scan") == 1) {
+                  if (labelJson.getIntValue("ad_is_scan") == 1 && targetingConversion == "10004") {
                     labels.put("is_landing3_with_has_scan", 1)
                   } else {
                     labels.put("is_landing3_with_has_scan", 0)