Procházet zdrojové kódy

feature consistance bugs

sunmingze před 1 rokem
rodič
revize
361bad3861

+ 1 - 1
pom.xml

@@ -48,7 +48,7 @@
         <dependency>
             <groupId>com.tzld.piaoquan</groupId>
             <artifactId>recommend-feature-client</artifactId>
-            <version>1.0.2</version>
+            <version>1.0.5</version>
         </dependency>
 
 

+ 22 - 1
src/main/java/examples/sparksql/SparkAdCTRSampleLoader.java

@@ -16,6 +16,7 @@ import org.apache.spark.api.java.JavaSparkContext;
 import org.apache.spark.api.java.function.Function2;
 
 import java.util.ArrayList;
+import java.util.List;
 import java.util.Map;
 
 
@@ -82,7 +83,7 @@ public class SparkAdCTRSampleLoader {
         bytesFeatureExtractor.getCrossFeature(adItemBytesFeature, adRequestContextBytesFeature, userBytesFeature);
 
         ListMultimap<FeatureGroup, BaseFeature> featureMap = bytesFeatureExtractor.getFeatures();
-        return parseSamplesToString(label, featureMap);
+        return parseSamplesToString2(label, featureMap);
     }
 
     // 构建样本的字符串
@@ -97,4 +98,24 @@ public class SparkAdCTRSampleLoader {
         return label + "\t" + String.join("\t", featureList);
     }
 
+
+    // 构建样本的字符串
+    public static String parseSamplesToString2(String label, ListMultimap<FeatureGroup, BaseFeature> featureMap) {
+        ArrayList<String> featureList = new ArrayList<String>();
+        List<FeatureGroup> keys = new ArrayList<>(featureMap.keySet());
+
+        for (FeatureGroup group : keys) {
+            List<BaseFeature> feaList = featureMap.get(group);
+            for(BaseFeature baseFeature : feaList){
+                Long featureIdentifier = baseFeature.getIdentifier();
+                String feaName = baseFeature.getFea();
+                featureList.add(String.valueOf(feaName) + ":1");
+            }
+        }
+
+        return label + "\t" + String.join("\t", featureList);
+
+    }
+
+
 }