SAMOA-58: Filter out NaN and Inf values

Project: http://git-wip-us.apache.org/repos/asf/incubator-samoa/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-samoa/commit/15df2523
Tree: http://git-wip-us.apache.org/repos/asf/incubator-samoa/tree/15df2523
Diff: http://git-wip-us.apache.org/repos/asf/incubator-samoa/diff/15df2523

Branch: refs/heads/master
Commit: 15df2523193a2130d077f0afc1b53e7c596231e1
Parents: 78ae8fc
Author: edi_bice <[email protected]>
Authored: Tue Feb 23 13:59:33 2016 -0500
Committer: Gianmarco De Francisci Morales <[email protected]>
Committed: Tue Apr 19 11:33:42 2016 +0300

----------------------------------------------------------------------
 .../src/main/java/org/apache/samoa/instances/AvroLoader.java  | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-samoa/blob/15df2523/samoa-instances/src/main/java/org/apache/samoa/instances/AvroLoader.java
----------------------------------------------------------------------
diff --git 
a/samoa-instances/src/main/java/org/apache/samoa/instances/AvroLoader.java 
b/samoa-instances/src/main/java/org/apache/samoa/instances/AvroLoader.java
index 9f0664c..8c49537 100644
--- a/samoa-instances/src/main/java/org/apache/samoa/instances/AvroLoader.java
+++ b/samoa-instances/src/main/java/org/apache/samoa/instances/AvroLoader.java
@@ -26,6 +26,7 @@ import java.util.List;
 
 import org.apache.avro.Schema;
 import org.apache.avro.Schema.Field;
+import org.apache.avro.SchemaBuilder;
 import org.apache.avro.generic.GenericData.EnumSymbol;
 import org.apache.avro.generic.GenericRecord;
 import org.apache.avro.io.DatumReader;
@@ -164,8 +165,10 @@ public abstract class AvroLoader implements Loader {
 
       if (isNumeric)
       {
-        if (value instanceof Double)
-          this.setSparseValue(instance, indexValues, attributeValues, 
numAttribute, (double) value);
+        if (value instanceof Double) {
+          Double v = (double) value;
+          if (Double.isFinite(v)) this.setSparseValue(instance, indexValues, 
attributeValues, numAttribute, (double) value);
+        }
         else if (value instanceof Long)
           this.setSparseValue(instance, indexValues, attributeValues, 
numAttribute, (long) value);
         else if (value instanceof Integer)

Reply via email to