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)
