http://git-wip-us.apache.org/repos/asf/mahout/blob/85f9ece6/integration/src/test/java/org/apache/mahout/text/TestSequenceFilesFromDirectory.java ---------------------------------------------------------------------- diff --git a/integration/src/test/java/org/apache/mahout/text/TestSequenceFilesFromDirectory.java b/integration/src/test/java/org/apache/mahout/text/TestSequenceFilesFromDirectory.java index aec5e39..040c8e4 100644 --- a/integration/src/test/java/org/apache/mahout/text/TestSequenceFilesFromDirectory.java +++ b/integration/src/test/java/org/apache/mahout/text/TestSequenceFilesFromDirectory.java @@ -20,12 +20,10 @@ package org.apache.mahout.text; import java.io.File; import java.io.IOException; import java.io.OutputStreamWriter; +import java.util.HashMap; import java.util.Map; -import com.google.common.base.Charsets; -import com.google.common.collect.Maps; -import com.google.common.io.Closeables; - +import org.apache.commons.io.Charsets; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileStatus; import org.apache.hadoop.fs.FileSystem; @@ -162,13 +160,10 @@ public final class TestSequenceFilesFromDirectory extends MahoutTestCase { private static void createFilesFromArrays(Configuration conf, Path inputDir, String[][] data) throws IOException { FileSystem fs = FileSystem.get(conf); - OutputStreamWriter writer; for (String[] aData : data) { - writer = new OutputStreamWriter(fs.create(new Path(inputDir, aData[0])), Charsets.UTF_8); - try { + try (OutputStreamWriter writer = + new OutputStreamWriter(fs.create(new Path(inputDir, aData[0])), Charsets.UTF_8)){ writer.write(aData[1]); - } finally { - Closeables.close(writer, false); } } } @@ -182,21 +177,15 @@ public final class TestSequenceFilesFromDirectory extends MahoutTestCase { String currentRecursiveDir = inputDir.toString(); for (String[] aData : data) { - OutputStreamWriter writer; - currentRecursiveDir += "/" + aData[0]; File subDir = new File(currentRecursiveDir); subDir.mkdir(); curPath = new Path(subDir.toString(), "file.txt"); - writer = new OutputStreamWriter(fs.create(curPath), Charsets.UTF_8); - logger.info("Created file: {}", curPath.toString()); - try { + try (OutputStreamWriter writer = new OutputStreamWriter(fs.create(curPath), Charsets.UTF_8)){ writer.write(aData[1]); - } finally { - Closeables.close(writer, false); } } } @@ -212,23 +201,20 @@ public final class TestSequenceFilesFromDirectory extends MahoutTestCase { assertEquals(1, fileStatuses.length); // only one assertEquals("chunk-0", fileStatuses[0].getPath().getName()); - Map<String, String> fileToData = Maps.newHashMap(); + Map<String, String> fileToData = new HashMap<>(); for (String[] aData : data) { fileToData.put(prefix + Path.SEPARATOR + aData[0], aData[1]); } // read a chunk to check content - SequenceFileIterator<Text, Text> iterator = - new SequenceFileIterator<>(fileStatuses[0].getPath(), true, configuration); - try { + try (SequenceFileIterator<Text, Text> iterator = + new SequenceFileIterator<>(fileStatuses[0].getPath(), true, configuration)){ while (iterator.hasNext()) { Pair<Text, Text> record = iterator.next(); String retrievedData = fileToData.get(record.getFirst().toString().trim()); assertNotNull(retrievedData); assertEquals(retrievedData, record.getSecond().toString().trim()); } - } finally { - Closeables.close(iterator, true); } } @@ -246,7 +232,7 @@ public final class TestSequenceFilesFromDirectory extends MahoutTestCase { assertEquals("chunk-0", fileStatuses[0].getPath().getName()); - Map<String, String> fileToData = Maps.newHashMap(); + Map<String, String> fileToData = new HashMap<>(); String currentPath = prefix; for (String[] aData : data) { currentPath += Path.SEPARATOR + aData[0]; @@ -254,9 +240,8 @@ public final class TestSequenceFilesFromDirectory extends MahoutTestCase { } // read a chunk to check content - SequenceFileIterator<Text, Text> iterator = - new SequenceFileIterator<>(fileStatuses[0].getPath(), true, configuration); - try { + try (SequenceFileIterator<Text, Text> iterator = + new SequenceFileIterator<>(fileStatuses[0].getPath(), true, configuration)) { while (iterator.hasNext()) { Pair<Text, Text> record = iterator.next(); String retrievedData = fileToData.get(record.getFirst().toString().trim()); @@ -266,8 +251,6 @@ public final class TestSequenceFilesFromDirectory extends MahoutTestCase { assertEquals(retrievedData, record.getSecond().toString().trim()); System.out.printf(">>> k: %s, v: %s\n", record.getFirst().toString(), record.getSecond().toString()); } - } finally { - Closeables.close(iterator, true); } } @@ -279,16 +262,15 @@ public final class TestSequenceFilesFromDirectory extends MahoutTestCase { FileStatus[] fileStatuses = fs.listStatus(outputDir.suffix("/part-m-00000"), PathFilters.logsCRCFilter()); assertEquals(1, fileStatuses.length); // only one assertEquals("part-m-00000", fileStatuses[0].getPath().getName()); - Map<String, String> fileToData = Maps.newHashMap(); + Map<String, String> fileToData = new HashMap<>(); for (String[] aData : data) { System.out.printf("map.put: %s %s\n", prefix + Path.SEPARATOR + aData[0], aData[1]); fileToData.put(prefix + Path.SEPARATOR + aData[0], aData[1]); } // read a chunk to check content - SequenceFileIterator<Text, Text> iterator = new SequenceFileIterator<>( - fileStatuses[0].getPath(), true, conf); - try { + try (SequenceFileIterator<Text, Text> iterator = new SequenceFileIterator<>( + fileStatuses[0].getPath(), true, conf)) { while (iterator.hasNext()) { Pair<Text, Text> record = iterator.next(); String retrievedData = fileToData.get(record.getFirst().toString().trim()); @@ -297,8 +279,6 @@ public final class TestSequenceFilesFromDirectory extends MahoutTestCase { assertNotNull(retrievedData); assertEquals(retrievedData, record.getSecond().toString().trim()); } - } finally { - Closeables.close(iterator, true); } } @@ -310,7 +290,7 @@ public final class TestSequenceFilesFromDirectory extends MahoutTestCase { FileStatus[] fileStatuses = fs.listStatus(outputDir.suffix("/part-m-00000"), PathFilters.logsCRCFilter()); assertEquals(1, fileStatuses.length); // only one assertEquals("part-m-00000", fileStatuses[0].getPath().getName()); - Map<String, String> fileToData = Maps.newHashMap(); + Map<String, String> fileToData = new HashMap<>(); String currentPath = prefix; for (String[] aData : data) { @@ -319,9 +299,8 @@ public final class TestSequenceFilesFromDirectory extends MahoutTestCase { } // read a chunk to check content - SequenceFileIterator<Text, Text> iterator = new SequenceFileIterator<>( - fileStatuses[0].getPath(), true, configuration); - try { + try (SequenceFileIterator<Text, Text> iterator = new SequenceFileIterator<>( + fileStatuses[0].getPath(), true, configuration)){ while (iterator.hasNext()) { Pair<Text, Text> record = iterator.next(); System.out.printf("MR-Recur > Trying to check: %s\n", record.getFirst().toString().trim()); @@ -329,9 +308,6 @@ public final class TestSequenceFilesFromDirectory extends MahoutTestCase { assertNotNull(retrievedData); assertEquals(retrievedData, record.getSecond().toString().trim()); } - } finally { - Closeables.close(iterator, true); } } } -
http://git-wip-us.apache.org/repos/asf/mahout/blob/85f9ece6/integration/src/test/java/org/apache/mahout/text/doc/NumericFieldDocument.java ---------------------------------------------------------------------- diff --git a/integration/src/test/java/org/apache/mahout/text/doc/NumericFieldDocument.java b/integration/src/test/java/org/apache/mahout/text/doc/NumericFieldDocument.java index 5a4f9fa..55d6e0f 100644 --- a/integration/src/test/java/org/apache/mahout/text/doc/NumericFieldDocument.java +++ b/integration/src/test/java/org/apache/mahout/text/doc/NumericFieldDocument.java @@ -22,7 +22,6 @@ import org.apache.lucene.document.IntField; import org.apache.lucene.document.StringField; import org.apache.lucene.document.TextField; - /** * Document with numeric field. */ http://git-wip-us.apache.org/repos/asf/mahout/blob/85f9ece6/integration/src/test/java/org/apache/mahout/utils/SplitInputTest.java ---------------------------------------------------------------------- diff --git a/integration/src/test/java/org/apache/mahout/utils/SplitInputTest.java b/integration/src/test/java/org/apache/mahout/utils/SplitInputTest.java index 72d60ec..7ffa690 100644 --- a/integration/src/test/java/org/apache/mahout/utils/SplitInputTest.java +++ b/integration/src/test/java/org/apache/mahout/utils/SplitInputTest.java @@ -23,17 +23,14 @@ import java.io.OutputStreamWriter; import java.io.Writer; import java.nio.charset.Charset; -import com.google.common.base.Charsets; import com.google.common.io.Closeables; - +import org.apache.commons.io.Charsets; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; -import org.apache.hadoop.io.IOUtils; import org.apache.hadoop.io.IntWritable; import org.apache.hadoop.io.SequenceFile; import org.apache.hadoop.io.Text; -import org.apache.hadoop.io.Writable; import org.apache.hadoop.util.ToolRunner; import org.apache.mahout.classifier.ClassifierData; import org.apache.mahout.common.MahoutTestCase; @@ -68,7 +65,7 @@ public final class SplitInputTest extends MahoutTestCase { super.setUp(); - countMap = new OpenObjectIntHashMap<String>(); + countMap = new OpenObjectIntHashMap<>(); charset = Charsets.UTF_8; tempSequenceDirectory = getTestTempFilePath("tmpsequence"); @@ -192,15 +189,13 @@ public final class SplitInputTest extends MahoutTestCase { * @param path path for test SequenceFile * @param testPoints number of records in test SequenceFile */ - private void writeVectorSequenceFile(Path path, int testPoints) - throws IOException { + private void writeVectorSequenceFile(Path path, int testPoints) throws IOException { Path tempSequenceFile = new Path(path, "part-00000"); Configuration conf = getConfiguration(); IntWritable key = new IntWritable(); VectorWritable value = new VectorWritable(); - SequenceFile.Writer writer = null; - try { - writer = SequenceFile.createWriter(fs, conf, tempSequenceFile, IntWritable.class, VectorWritable.class); + try (SequenceFile.Writer writer = + SequenceFile.createWriter(fs, conf, tempSequenceFile, IntWritable.class, VectorWritable.class)) { for (int i = 0; i < testPoints; i++) { key.set(i); Vector v = new SequentialAccessSparseVector(4); @@ -208,8 +203,6 @@ public final class SplitInputTest extends MahoutTestCase { value.set(v); writer.append(key, value); } - } finally { - IOUtils.closeStream(writer); } } @@ -223,18 +216,12 @@ public final class SplitInputTest extends MahoutTestCase { Configuration conf = getConfiguration(); Text key = new Text(); Text value = new Text(); - SequenceFile.Writer writer = null; - try { - writer = - SequenceFile.createWriter(fs, conf, tempSequenceFile, - Text.class, Text.class); + try (SequenceFile.Writer writer = SequenceFile.createWriter(fs, conf, tempSequenceFile, Text.class, Text.class)){ for (int i = 0; i < testPoints; i++) { key.set(Integer.toString(i)); value.set("Line " + i); writer.append(key, value); } - } finally { - IOUtils.closeStream(writer); } } @@ -243,7 +230,7 @@ public final class SplitInputTest extends MahoutTestCase { * @param sequenceFilePath path to SequenceFile */ private void displaySequenceFile(Path sequenceFilePath) throws IOException { - for (Pair<?,?> record : new SequenceFileIterable<Writable,Writable>(sequenceFilePath, true, getConfiguration())) { + for (Pair<?,?> record : new SequenceFileIterable<>(sequenceFilePath, true, getConfiguration())) { System.out.println(record.getFirst() + "\t" + record.getSecond()); } } @@ -255,7 +242,7 @@ public final class SplitInputTest extends MahoutTestCase { */ private int getNumberRecords(Path sequenceFilePath) throws IOException { int numberRecords = 0; - for (Object value : new SequenceFileValueIterable<Writable>(sequenceFilePath, true, getConfiguration())) { + for (Object value : new SequenceFileValueIterable<>(sequenceFilePath, true, getConfiguration())) { numberRecords++; } return numberRecords; http://git-wip-us.apache.org/repos/asf/mahout/blob/85f9ece6/integration/src/test/java/org/apache/mahout/utils/TestConcatenateVectorsJob.java ---------------------------------------------------------------------- diff --git a/integration/src/test/java/org/apache/mahout/utils/TestConcatenateVectorsJob.java b/integration/src/test/java/org/apache/mahout/utils/TestConcatenateVectorsJob.java index 329b590..98f5ca8 100644 --- a/integration/src/test/java/org/apache/mahout/utils/TestConcatenateVectorsJob.java +++ b/integration/src/test/java/org/apache/mahout/utils/TestConcatenateVectorsJob.java @@ -17,9 +17,9 @@ package org.apache.mahout.utils; +import java.util.ArrayList; import java.util.List; -import com.google.common.collect.Lists; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.io.IntWritable; import org.apache.hadoop.mapreduce.Reducer; @@ -66,7 +66,7 @@ public class TestConcatenateVectorsJob extends MahoutTestCase { for(int i = 0; i < 3; i++) { double[] values = DATA_A[i]; - List<VectorWritable> vwList = Lists.newArrayList(); + List<VectorWritable> vwList = new ArrayList<>(); if (values.length > 0) { Vector v = new DenseVector(values); VectorWritable vw = new VectorWritable(); http://git-wip-us.apache.org/repos/asf/mahout/blob/85f9ece6/integration/src/test/java/org/apache/mahout/utils/email/MailProcessorTest.java ---------------------------------------------------------------------- diff --git a/integration/src/test/java/org/apache/mahout/utils/email/MailProcessorTest.java b/integration/src/test/java/org/apache/mahout/utils/email/MailProcessorTest.java index 77307bb..c519f85 100644 --- a/integration/src/test/java/org/apache/mahout/utils/email/MailProcessorTest.java +++ b/integration/src/test/java/org/apache/mahout/utils/email/MailProcessorTest.java @@ -17,15 +17,15 @@ package org.apache.mahout.utils.email; -import com.google.common.base.Charsets; -import org.apache.mahout.common.MahoutTestCase; -import org.junit.Test; - import java.io.File; import java.io.StringWriter; import java.net.URL; import java.util.regex.Pattern; +import org.apache.commons.io.Charsets; +import org.apache.mahout.common.MahoutTestCase; +import org.junit.Test; + public final class MailProcessorTest extends MahoutTestCase { @Test http://git-wip-us.apache.org/repos/asf/mahout/blob/85f9ece6/integration/src/test/java/org/apache/mahout/utils/nlp/collocations/llr/BloomTokenFilterTest.java ---------------------------------------------------------------------- diff --git a/integration/src/test/java/org/apache/mahout/utils/nlp/collocations/llr/BloomTokenFilterTest.java b/integration/src/test/java/org/apache/mahout/utils/nlp/collocations/llr/BloomTokenFilterTest.java index 9df4930..37efc01 100644 --- a/integration/src/test/java/org/apache/mahout/utils/nlp/collocations/llr/BloomTokenFilterTest.java +++ b/integration/src/test/java/org/apache/mahout/utils/nlp/collocations/llr/BloomTokenFilterTest.java @@ -26,8 +26,7 @@ import java.nio.ByteBuffer; import java.nio.CharBuffer; import java.nio.charset.CharsetEncoder; -import com.google.common.base.Charsets; - +import org.apache.commons.io.Charsets; import org.apache.hadoop.util.bloom.BloomFilter; import org.apache.hadoop.util.bloom.Filter; import org.apache.hadoop.util.bloom.Key; http://git-wip-us.apache.org/repos/asf/mahout/blob/85f9ece6/integration/src/test/java/org/apache/mahout/utils/regex/RegexMapperTest.java ---------------------------------------------------------------------- diff --git a/integration/src/test/java/org/apache/mahout/utils/regex/RegexMapperTest.java b/integration/src/test/java/org/apache/mahout/utils/regex/RegexMapperTest.java index 728a78c..d569acf 100644 --- a/integration/src/test/java/org/apache/mahout/utils/regex/RegexMapperTest.java +++ b/integration/src/test/java/org/apache/mahout/utils/regex/RegexMapperTest.java @@ -60,7 +60,7 @@ public final class RegexMapperTest extends MahoutTestCase { conf.set(RegexMapper.REGEX, "(\\d+)\\.(\\d+)\\.(\\d+)"); conf.set(RegexMapper.TRANSFORMER_CLASS, URLDecodeTransformer.class.getName()); conf.setStrings(RegexMapper.GROUP_MATCHERS, "1", "3"); - DummyRecordWriter<LongWritable, Text> mapWriter = new DummyRecordWriter<LongWritable, Text>(); + DummyRecordWriter<LongWritable, Text> mapWriter = new DummyRecordWriter<>(); Mapper<LongWritable, Text, LongWritable, Text>.Context mapContext = DummyRecordWriter .build(mapper, conf, mapWriter); @@ -83,7 +83,7 @@ public final class RegexMapperTest extends MahoutTestCase { conf.set(RegexMapper.REGEX, "(?<=(\\?|&)q=).*?(?=&|$)"); conf.set(RegexMapper.TRANSFORMER_CLASS, URLDecodeTransformer.class.getName()); conf.set(RegexMapper.FORMATTER_CLASS, FPGFormatter.class.getName()); - DummyRecordWriter<LongWritable, Text> mapWriter = new DummyRecordWriter<LongWritable, Text>(); + DummyRecordWriter<LongWritable, Text> mapWriter = new DummyRecordWriter<>(); Mapper<LongWritable, Text, LongWritable, Text>.Context mapContext = DummyRecordWriter .build(mapper, conf, mapWriter); http://git-wip-us.apache.org/repos/asf/mahout/blob/85f9ece6/integration/src/test/java/org/apache/mahout/utils/regex/RegexUtilsTest.java ---------------------------------------------------------------------- diff --git a/integration/src/test/java/org/apache/mahout/utils/regex/RegexUtilsTest.java b/integration/src/test/java/org/apache/mahout/utils/regex/RegexUtilsTest.java index 0599028..8ae10a5 100644 --- a/integration/src/test/java/org/apache/mahout/utils/regex/RegexUtilsTest.java +++ b/integration/src/test/java/org/apache/mahout/utils/regex/RegexUtilsTest.java @@ -17,14 +17,14 @@ package org.apache.mahout.utils.regex; -import com.google.common.collect.Lists; -import org.apache.mahout.common.MahoutTestCase; -import org.junit.Test; - +import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.regex.Pattern; +import org.apache.mahout.common.MahoutTestCase; +import org.junit.Test; + public final class RegexUtilsTest extends MahoutTestCase { static final String[] TEST_STRS = { @@ -53,7 +53,7 @@ public final class RegexUtilsTest extends MahoutTestCase { assertEquals(res, "import statement 1", res); pattern = Pattern.compile("(start=1) HTTP"); - Collection<Integer> groupsToKeep = Lists.newArrayList(); + Collection<Integer> groupsToKeep = new ArrayList<>(); groupsToKeep.add(1); res = RegexUtils.extract(line, pattern, groupsToKeep, " ", RegexUtils.IDENTITY_TRANSFORMER); assertEquals(res, "start=1", res); http://git-wip-us.apache.org/repos/asf/mahout/blob/85f9ece6/integration/src/test/java/org/apache/mahout/utils/vectors/VectorHelperTest.java ---------------------------------------------------------------------- diff --git a/integration/src/test/java/org/apache/mahout/utils/vectors/VectorHelperTest.java b/integration/src/test/java/org/apache/mahout/utils/vectors/VectorHelperTest.java index 3fcfbf8..c55fd8d 100644 --- a/integration/src/test/java/org/apache/mahout/utils/vectors/VectorHelperTest.java +++ b/integration/src/test/java/org/apache/mahout/utils/vectors/VectorHelperTest.java @@ -17,9 +17,8 @@ package org.apache.mahout.utils.vectors; -import com.google.common.collect.Iterables; +import java.util.Random; -import com.google.common.io.Closeables; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; @@ -33,8 +32,6 @@ import org.apache.mahout.math.Vector; import org.junit.Before; import org.junit.Test; -import java.util.Random; - public final class VectorHelperTest extends MahoutTestCase { private static final int NUM_DOCS = 100; @@ -52,28 +49,24 @@ public final class VectorHelperTest extends MahoutTestCase { inputPathOne = getTestTempFilePath("documents/docs-one.file"); FileSystem fs = FileSystem.get(inputPathOne.toUri(), conf); - SequenceFile.Writer writer = new SequenceFile.Writer(fs, conf, inputPathOne, Text.class, IntWritable.class); - try { + try (SequenceFile.Writer writer = + new SequenceFile.Writer(fs, conf, inputPathOne, Text.class, IntWritable.class)) { Random rd = RandomUtils.getRandom(); for (int i = 0; i < NUM_DOCS; i++) { // Make all indices higher than dictionary size writer.append(new Text("Document::ID::" + i), new IntWritable(NUM_DOCS + rd.nextInt(NUM_DOCS))); } - } finally { - Closeables.close(writer, false); } inputPathTwo = getTestTempFilePath("documents/docs-two.file"); fs = FileSystem.get(inputPathTwo.toUri(), conf); - writer = new SequenceFile.Writer(fs, conf, inputPathTwo, Text.class, IntWritable.class); - try { + try (SequenceFile.Writer writer = + new SequenceFile.Writer(fs, conf, inputPathTwo, Text.class, IntWritable.class)) { Random rd = RandomUtils.getRandom(); for (int i = 0; i < NUM_DOCS; i++) { // Keep indices within number of documents writer.append(new Text("Document::ID::" + i), new IntWritable(rd.nextInt(NUM_DOCS))); } - } finally { - Closeables.close(writer, false); } } @@ -120,7 +113,7 @@ public final class VectorHelperTest extends MahoutTestCase { // check if sizeOfNonZeroElementsInVector < maxEntries assertTrue(VectorHelper.topEntries(v, 9).size() < 9); // check if sizeOfNonZeroElementsInVector > maxEntries - assertTrue(VectorHelper.topEntries(v, 5).size() < Iterables.size(v.nonZeroes())); + assertTrue(VectorHelper.topEntries(v, 5).size() < v.getNumNonZeroElements()); } @Test http://git-wip-us.apache.org/repos/asf/mahout/blob/85f9ece6/integration/src/test/java/org/apache/mahout/utils/vectors/arff/ARFFVectorIterableTest.java ---------------------------------------------------------------------- diff --git a/integration/src/test/java/org/apache/mahout/utils/vectors/arff/ARFFVectorIterableTest.java b/integration/src/test/java/org/apache/mahout/utils/vectors/arff/ARFFVectorIterableTest.java index bf7415f..4c7f17a 100644 --- a/integration/src/test/java/org/apache/mahout/utils/vectors/arff/ARFFVectorIterableTest.java +++ b/integration/src/test/java/org/apache/mahout/utils/vectors/arff/ARFFVectorIterableTest.java @@ -25,9 +25,8 @@ import java.util.Iterator; import java.util.Locale; import java.util.Map; -import com.google.common.base.Charsets; import com.google.common.io.Resources; - +import org.apache.commons.io.Charsets; import org.apache.mahout.common.MahoutTestCase; import org.apache.mahout.math.DenseVector; import org.apache.mahout.math.RandomAccessSparseVector; http://git-wip-us.apache.org/repos/asf/mahout/blob/85f9ece6/integration/src/test/java/org/apache/mahout/utils/vectors/arff/DriverTest.java ---------------------------------------------------------------------- diff --git a/integration/src/test/java/org/apache/mahout/utils/vectors/arff/DriverTest.java b/integration/src/test/java/org/apache/mahout/utils/vectors/arff/DriverTest.java index 693a8db..7e7623e 100644 --- a/integration/src/test/java/org/apache/mahout/utils/vectors/arff/DriverTest.java +++ b/integration/src/test/java/org/apache/mahout/utils/vectors/arff/DriverTest.java @@ -18,9 +18,8 @@ package org.apache.mahout.utils.vectors.arff; import java.io.IOException; import java.io.StringWriter; -import com.google.common.base.Charsets; import com.google.common.io.Resources; - +import org.apache.commons.io.Charsets; import org.apache.mahout.common.MahoutTestCase; import org.junit.Test; http://git-wip-us.apache.org/repos/asf/mahout/blob/85f9ece6/integration/src/test/java/org/apache/mahout/utils/vectors/arff/MapBackedARFFModelTest.java ---------------------------------------------------------------------- diff --git a/integration/src/test/java/org/apache/mahout/utils/vectors/arff/MapBackedARFFModelTest.java b/integration/src/test/java/org/apache/mahout/utils/vectors/arff/MapBackedARFFModelTest.java index 1e3b8f8..2867640 100644 --- a/integration/src/test/java/org/apache/mahout/utils/vectors/arff/MapBackedARFFModelTest.java +++ b/integration/src/test/java/org/apache/mahout/utils/vectors/arff/MapBackedARFFModelTest.java @@ -21,7 +21,6 @@ import org.junit.Test; import java.util.Map; - public class MapBackedARFFModelTest extends MahoutTestCase { @Test http://git-wip-us.apache.org/repos/asf/mahout/blob/85f9ece6/integration/src/test/java/org/apache/mahout/utils/vectors/csv/CSVVectorIteratorTest.java ---------------------------------------------------------------------- diff --git a/integration/src/test/java/org/apache/mahout/utils/vectors/csv/CSVVectorIteratorTest.java b/integration/src/test/java/org/apache/mahout/utils/vectors/csv/CSVVectorIteratorTest.java index ca3781b..e76cf70 100644 --- a/integration/src/test/java/org/apache/mahout/utils/vectors/csv/CSVVectorIteratorTest.java +++ b/integration/src/test/java/org/apache/mahout/utils/vectors/csv/CSVVectorIteratorTest.java @@ -5,9 +5,9 @@ * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * + * <p/> + * http://www.apache.org/licenses/LICENSE-2.0 + * <p/> * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -22,8 +22,6 @@ import java.io.StringReader; import java.io.StringWriter; import java.util.Iterator; -import com.google.common.io.Closeables; - import org.apache.mahout.common.MahoutTestCase; import org.apache.mahout.math.Vector; import org.apache.mahout.utils.vectors.RandomVectorIterable; @@ -37,19 +35,17 @@ public class CSVVectorIteratorTest extends MahoutTestCase { public void testCount() throws Exception { StringWriter sWriter = new StringWriter(); - TextualVectorWriter writer = new TextualVectorWriter(sWriter) { + try (TextualVectorWriter writer = new TextualVectorWriter(sWriter) { @Override public void write(Vector vector) throws IOException { String vecStr = VectorHelper.vectorToCSVString(vector, false); getWriter().write(vecStr); } - }; - try { + }) { Iterable<Vector> iter = new RandomVectorIterable(50); writer.write(iter); - } finally { - Closeables.close(writer, false); } + Iterator<Vector> csvIter = new CSVVectorIterator(new StringReader(sWriter.getBuffer().toString())); int count = 0; while (csvIter.hasNext()) { http://git-wip-us.apache.org/repos/asf/mahout/blob/85f9ece6/integration/src/test/java/org/apache/mahout/utils/vectors/io/VectorWriterTest.java ---------------------------------------------------------------------- diff --git a/integration/src/test/java/org/apache/mahout/utils/vectors/io/VectorWriterTest.java b/integration/src/test/java/org/apache/mahout/utils/vectors/io/VectorWriterTest.java index 96b2704..e2f7032 100644 --- a/integration/src/test/java/org/apache/mahout/utils/vectors/io/VectorWriterTest.java +++ b/integration/src/test/java/org/apache/mahout/utils/vectors/io/VectorWriterTest.java @@ -18,11 +18,9 @@ package org.apache.mahout.utils.vectors.io; import java.io.StringWriter; +import java.util.ArrayList; import java.util.Collection; -import com.google.common.collect.Lists; -import com.google.common.io.Closeables; - import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; @@ -44,11 +42,8 @@ public final class VectorWriterTest extends MahoutTestCase { Configuration conf = getConfiguration(); FileSystem fs = FileSystem.get(conf); SequenceFile.Writer seqWriter = new SequenceFile.Writer(fs, conf, path, LongWritable.class, VectorWritable.class); - SequenceFileVectorWriter writer = new SequenceFileVectorWriter(seqWriter); - try { + try (SequenceFileVectorWriter writer = new SequenceFileVectorWriter(seqWriter)) { writer.write(new RandomVectorIterable(50)); - } finally { - Closeables.close(writer, false); } long count = HadoopUtil.countRecords(path, conf); @@ -58,14 +53,11 @@ public final class VectorWriterTest extends MahoutTestCase { @Test public void testTextOutputSize() throws Exception { StringWriter strWriter = new StringWriter(); - VectorWriter writer = new TextualVectorWriter(strWriter); - try { - Collection<Vector> vectors = Lists.newArrayList(); + try (VectorWriter writer = new TextualVectorWriter(strWriter)) { + Collection<Vector> vectors = new ArrayList<>(); vectors.add(new DenseVector(new double[]{0.3, 1.5, 4.5})); vectors.add(new DenseVector(new double[]{1.3, 1.5, 3.5})); writer.write(vectors); - } finally { - Closeables.close(writer, false); } String buffer = strWriter.toString(); assertNotNull(buffer); http://git-wip-us.apache.org/repos/asf/mahout/blob/85f9ece6/math/src/main/java/org/apache/mahout/math/QRDecomposition.java ---------------------------------------------------------------------- diff --git a/math/src/main/java/org/apache/mahout/math/QRDecomposition.java b/math/src/main/java/org/apache/mahout/math/QRDecomposition.java index 732529a..5a3d918 100644 --- a/math/src/main/java/org/apache/mahout/math/QRDecomposition.java +++ b/math/src/main/java/org/apache/mahout/math/QRDecomposition.java @@ -27,7 +27,6 @@ import org.apache.mahout.math.function.Functions; import java.util.Locale; - /** For an <tt>m x n</tt> matrix <tt>A</tt> with <tt>m >= n</tt>, the QR decomposition is an <tt>m x n</tt> orthogonal matrix <tt>Q</tt> and an <tt>n x n</tt> upper triangular matrix <tt>R</tt> so that http://git-wip-us.apache.org/repos/asf/mahout/blob/85f9ece6/math/src/main/java/org/apache/mahout/math/SingularValueDecomposition.java ---------------------------------------------------------------------- diff --git a/math/src/main/java/org/apache/mahout/math/SingularValueDecomposition.java b/math/src/main/java/org/apache/mahout/math/SingularValueDecomposition.java index ecb34c6..2abff10 100644 --- a/math/src/main/java/org/apache/mahout/math/SingularValueDecomposition.java +++ b/math/src/main/java/org/apache/mahout/math/SingularValueDecomposition.java @@ -589,7 +589,7 @@ public class SingularValueDecomposition implements java.io.Serializable { } /** - * @parameter minSingularValue + * @param minSingularValue * minSingularValue - value below which singular values are ignored (a 0 or negative * value implies all singular value will be used) * @return Returns the n à n covariance matrix. http://git-wip-us.apache.org/repos/asf/mahout/blob/85f9ece6/math/src/main/java/org/apache/mahout/math/SparseColumnMatrix.java ---------------------------------------------------------------------- diff --git a/math/src/main/java/org/apache/mahout/math/SparseColumnMatrix.java b/math/src/main/java/org/apache/mahout/math/SparseColumnMatrix.java index 6a75716..c678b35 100644 --- a/math/src/main/java/org/apache/mahout/math/SparseColumnMatrix.java +++ b/math/src/main/java/org/apache/mahout/math/SparseColumnMatrix.java @@ -42,8 +42,8 @@ public class SparseColumnMatrix extends AbstractMatrix { /** * Construct a matrix of the given cardinality * - * @param rows - * @param columns + * @param rows # of rows + * @param columns # of columns */ public SparseColumnMatrix(int rows, int columns) { super(rows, columns); http://git-wip-us.apache.org/repos/asf/mahout/blob/85f9ece6/math/src/main/java/org/apache/mahout/math/decomposer/hebbian/HebbianSolver.java ---------------------------------------------------------------------- diff --git a/math/src/main/java/org/apache/mahout/math/decomposer/hebbian/HebbianSolver.java b/math/src/main/java/org/apache/mahout/math/decomposer/hebbian/HebbianSolver.java index fe3d11c..5b5cc9b 100644 --- a/math/src/main/java/org/apache/mahout/math/decomposer/hebbian/HebbianSolver.java +++ b/math/src/main/java/org/apache/mahout/math/decomposer/hebbian/HebbianSolver.java @@ -17,21 +17,21 @@ package org.apache.mahout.math.decomposer.hebbian; +import java.util.ArrayList; import java.util.List; import java.util.Properties; import java.util.Random; -import com.google.common.collect.Lists; import org.apache.mahout.common.RandomUtils; import org.apache.mahout.math.DenseMatrix; import org.apache.mahout.math.DenseVector; import org.apache.mahout.math.Matrix; +import org.apache.mahout.math.Vector; import org.apache.mahout.math.decomposer.AsyncEigenVerifier; import org.apache.mahout.math.decomposer.EigenStatus; import org.apache.mahout.math.decomposer.SingularVectorVerifier; -import org.apache.mahout.math.function.TimesFunction; -import org.apache.mahout.math.Vector; import org.apache.mahout.math.function.PlusMult; +import org.apache.mahout.math.function.TimesFunction; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -171,7 +171,7 @@ public class HebbianSolver { int desiredRank) { int cols = corpus.numCols(); Matrix eigens = new DenseMatrix(desiredRank, cols); - List<Double> eigenValues = Lists.newArrayList(); + List<Double> eigenValues = new ArrayList<>(); log.info("Finding {} singular vectors of matrix with {} rows, via Hebbian", desiredRank, corpus.numRows()); /* * The corpusProjections matrix is a running cache of the residual projection of each corpus vector against all @@ -278,7 +278,7 @@ public class HebbianSolver { currentPseudoEigen.assign(previousEigen, new PlusMult(-state.getHelperVector().get(i))); state.getHelperVector().set(i, 0); } - if (DEBUG && currentPseudoEigen.norm(2) > 0) { + if (currentPseudoEigen.norm(2) > 0) { for (int i = 0; i < state.getNumEigensProcessed(); i++) { Vector previousEigen = previousEigens.viewRow(i); log.info("dot with previous: {}", previousEigen.dot(currentPseudoEigen) / currentPseudoEigen.norm(2)); http://git-wip-us.apache.org/repos/asf/mahout/blob/85f9ece6/math/src/main/java/org/apache/mahout/math/decomposer/hebbian/TrainingState.java ---------------------------------------------------------------------- diff --git a/math/src/main/java/org/apache/mahout/math/decomposer/hebbian/TrainingState.java b/math/src/main/java/org/apache/mahout/math/decomposer/hebbian/TrainingState.java index d1fcb6a..af6c2ef 100644 --- a/math/src/main/java/org/apache/mahout/math/decomposer/hebbian/TrainingState.java +++ b/math/src/main/java/org/apache/mahout/math/decomposer/hebbian/TrainingState.java @@ -17,9 +17,9 @@ package org.apache.mahout.math.decomposer.hebbian; +import java.util.ArrayList; import java.util.List; -import com.google.common.collect.Lists; import org.apache.mahout.math.DenseVector; import org.apache.mahout.math.Matrix; import org.apache.mahout.math.Vector; @@ -44,7 +44,7 @@ public class TrainingState { trainingIndex = 0; helperVector = new DenseVector(eigens.numRows()); firstPass = true; - statusProgress = Lists.newArrayList(); + statusProgress = new ArrayList<>(); activationNumerator = 0; activationDenominatorSquared = 0; numEigensProcessed = 0; http://git-wip-us.apache.org/repos/asf/mahout/blob/85f9ece6/math/src/main/java/org/apache/mahout/math/stats/LogLikelihood.java ---------------------------------------------------------------------- diff --git a/math/src/main/java/org/apache/mahout/math/stats/LogLikelihood.java b/math/src/main/java/org/apache/mahout/math/stats/LogLikelihood.java index 336449c..d2c8434 100644 --- a/math/src/main/java/org/apache/mahout/math/stats/LogLikelihood.java +++ b/math/src/main/java/org/apache/mahout/math/stats/LogLikelihood.java @@ -18,10 +18,10 @@ package org.apache.mahout.math.stats; import com.google.common.base.Preconditions; -import com.google.common.collect.Lists; import com.google.common.collect.Multiset; import com.google.common.collect.Ordering; +import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.PriorityQueue; @@ -159,7 +159,7 @@ public final class LogLikelihood { return Double.compare(tScoredItem.score, tScoredItem1.score); } }; - Queue<ScoredItem<T>> best = new PriorityQueue<ScoredItem<T>>(maxReturn + 1, byScoreAscending); + Queue<ScoredItem<T>> best = new PriorityQueue<>(maxReturn + 1, byScoreAscending); for (T t : a.elementSet()) { compareAndAdd(a, b, maxReturn, threshold, totalA, totalB, best, t); @@ -175,7 +175,7 @@ public final class LogLikelihood { } } - List<ScoredItem<T>> r = Lists.newArrayList(best); + List<ScoredItem<T>> r = new ArrayList<>(best); Collections.sort(r, byScoreAscending.reverse()); return r; } @@ -192,7 +192,7 @@ public final class LogLikelihood { int kB = b.count(t); double score = rootLogLikelihoodRatio(kA, totalA - kA, kB, totalB - kB); if (score >= threshold) { - ScoredItem<T> x = new ScoredItem<T>(t, score); + ScoredItem<T> x = new ScoredItem<>(t, score); best.add(x); while (best.size() > maxReturn) { best.poll(); http://git-wip-us.apache.org/repos/asf/mahout/blob/85f9ece6/math/src/test/java/org/apache/mahout/common/RandomUtilsTest.java ---------------------------------------------------------------------- diff --git a/math/src/test/java/org/apache/mahout/common/RandomUtilsTest.java b/math/src/test/java/org/apache/mahout/common/RandomUtilsTest.java index 29ef6f8..973cee5 100644 --- a/math/src/test/java/org/apache/mahout/common/RandomUtilsTest.java +++ b/math/src/test/java/org/apache/mahout/common/RandomUtilsTest.java @@ -23,7 +23,7 @@ import org.junit.Test; import java.util.Random; /** - * Tests {@linkRandomUtils}. + * Tests {@link RandomUtils}. */ public final class RandomUtilsTest extends MahoutTestCase { http://git-wip-us.apache.org/repos/asf/mahout/blob/85f9ece6/mr/src/main/java/org/apache/mahout/cf/taste/hadoop/RecommendedItemsWritable.java ---------------------------------------------------------------------- diff --git a/mr/src/main/java/org/apache/mahout/cf/taste/hadoop/RecommendedItemsWritable.java b/mr/src/main/java/org/apache/mahout/cf/taste/hadoop/RecommendedItemsWritable.java index 947204d..bc832aa 100644 --- a/mr/src/main/java/org/apache/mahout/cf/taste/hadoop/RecommendedItemsWritable.java +++ b/mr/src/main/java/org/apache/mahout/cf/taste/hadoop/RecommendedItemsWritable.java @@ -20,9 +20,9 @@ package org.apache.mahout.cf.taste.hadoop; import java.io.DataInput; import java.io.DataOutput; import java.io.IOException; +import java.util.ArrayList; import java.util.List; -import com.google.common.collect.Lists; import org.apache.hadoop.io.Writable; import org.apache.mahout.cf.taste.impl.recommender.GenericRecommendedItem; import org.apache.mahout.cf.taste.recommender.RecommendedItem; @@ -65,7 +65,7 @@ public final class RecommendedItemsWritable implements Writable { @Override public void readFields(DataInput in) throws IOException { int size = in.readInt(); - recommended = Lists.newArrayListWithCapacity(size); + recommended = new ArrayList<>(size); for (int i = 0; i < size; i++) { long itemID = Varint.readSignedVarLong(in); float value = in.readFloat(); http://git-wip-us.apache.org/repos/asf/mahout/blob/85f9ece6/mr/src/main/java/org/apache/mahout/cf/taste/hadoop/TopItemsQueue.java ---------------------------------------------------------------------- diff --git a/mr/src/main/java/org/apache/mahout/cf/taste/hadoop/TopItemsQueue.java b/mr/src/main/java/org/apache/mahout/cf/taste/hadoop/TopItemsQueue.java index 0f9ea75..8f563b0 100644 --- a/mr/src/main/java/org/apache/mahout/cf/taste/hadoop/TopItemsQueue.java +++ b/mr/src/main/java/org/apache/mahout/cf/taste/hadoop/TopItemsQueue.java @@ -17,13 +17,13 @@ package org.apache.mahout.cf.taste.hadoop; -import com.google.common.collect.Lists; -import org.apache.lucene.util.PriorityQueue; -import org.apache.mahout.cf.taste.recommender.RecommendedItem; - +import java.util.ArrayList; import java.util.Collections; import java.util.List; +import org.apache.lucene.util.PriorityQueue; +import org.apache.mahout.cf.taste.recommender.RecommendedItem; + public class TopItemsQueue extends PriorityQueue<MutableRecommendedItem> { private static final long SENTINEL_ID = Long.MIN_VALUE; @@ -36,7 +36,7 @@ public class TopItemsQueue extends PriorityQueue<MutableRecommendedItem> { } public List<RecommendedItem> getTopItems() { - List<RecommendedItem> recommendedItems = Lists.newArrayListWithCapacity(maxSize); + List<RecommendedItem> recommendedItems = new ArrayList<>(maxSize); while (size() > 0) { MutableRecommendedItem topItem = pop(); // filter out "sentinel" objects necessary for maintaining an efficient priority queue http://git-wip-us.apache.org/repos/asf/mahout/blob/85f9ece6/mr/src/main/java/org/apache/mahout/cf/taste/hadoop/als/ALS.java ---------------------------------------------------------------------- diff --git a/mr/src/main/java/org/apache/mahout/cf/taste/hadoop/als/ALS.java b/mr/src/main/java/org/apache/mahout/cf/taste/hadoop/als/ALS.java index c5ccf38..1c07b67 100644 --- a/mr/src/main/java/org/apache/mahout/cf/taste/hadoop/als/ALS.java +++ b/mr/src/main/java/org/apache/mahout/cf/taste/hadoop/als/ALS.java @@ -17,9 +17,12 @@ package org.apache.mahout.cf.taste.hadoop.als; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + import com.google.common.base.Preconditions; -import com.google.common.collect.Lists; -import com.google.common.io.Closeables; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.LocalFileSystem; @@ -37,10 +40,6 @@ import org.apache.mahout.math.VectorWritable; import org.apache.mahout.math.als.AlternatingLeastSquaresSolver; import org.apache.mahout.math.map.OpenIntObjectHashMap; -import java.io.IOException; -import java.util.Iterator; -import java.util.List; - final class ALS { private ALS() {} @@ -65,15 +64,10 @@ final class ALS { LocalFileSystem localFs = FileSystem.getLocal(conf); for (Path cachedFile : cachedFiles) { - - SequenceFile.Reader reader = null; - try { - reader = new SequenceFile.Reader(localFs, cachedFile, conf); + try (SequenceFile.Reader reader = new SequenceFile.Reader(localFs, cachedFile, conf)){ while (reader.next(rowIndex, row)) { featureMatrix.put(rowIndex.get(), row.get()); } - } finally { - Closeables.close(reader, true); } } @@ -96,7 +90,7 @@ final class ALS { double lambda, int numFeatures) { Vector ratings = ratingsWritable.get(); - List<Vector> featureVectors = Lists.newArrayListWithCapacity(ratings.getNumNondefaultElements()); + List<Vector> featureVectors = new ArrayList<>(ratings.getNumNondefaultElements()); for (Vector.Element e : ratings.nonZeroes()) { int index = e.index(); featureVectors.add(uOrM.get(index)); http://git-wip-us.apache.org/repos/asf/mahout/blob/85f9ece6/mr/src/main/java/org/apache/mahout/cf/taste/hadoop/als/FactorizationEvaluator.java ---------------------------------------------------------------------- diff --git a/mr/src/main/java/org/apache/mahout/cf/taste/hadoop/als/FactorizationEvaluator.java b/mr/src/main/java/org/apache/mahout/cf/taste/hadoop/als/FactorizationEvaluator.java index 3048b77..e69053c 100644 --- a/mr/src/main/java/org/apache/mahout/cf/taste/hadoop/als/FactorizationEvaluator.java +++ b/mr/src/main/java/org/apache/mahout/cf/taste/hadoop/als/FactorizationEvaluator.java @@ -23,8 +23,7 @@ import java.io.OutputStreamWriter; import java.util.List; import java.util.Map; -import com.google.common.base.Charsets; -import com.google.common.io.Closeables; +import org.apache.commons.io.Charsets; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FSDataOutputStream; import org.apache.hadoop.fs.FileSystem; @@ -104,17 +103,12 @@ public class FactorizationEvaluator extends AbstractJob { return -1; } - BufferedWriter writer = null; - try { - FileSystem fs = FileSystem.get(getOutputPath().toUri(), getConf()); - FSDataOutputStream outputStream = fs.create(getOutputPath("rmse.txt")); + FileSystem fs = FileSystem.get(getOutputPath().toUri(), getConf()); + FSDataOutputStream outputStream = fs.create(getOutputPath("rmse.txt")); + try (BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(outputStream, Charsets.UTF_8))){ double rmse = computeRmse(errors); - writer = new BufferedWriter(new OutputStreamWriter(outputStream, Charsets.UTF_8)); writer.write(String.valueOf(rmse)); - } finally { - Closeables.close(writer, false); } - return 0; } http://git-wip-us.apache.org/repos/asf/mahout/blob/85f9ece6/mr/src/main/java/org/apache/mahout/cf/taste/hadoop/als/ParallelALSFactorizationJob.java ---------------------------------------------------------------------- diff --git a/mr/src/main/java/org/apache/mahout/cf/taste/hadoop/als/ParallelALSFactorizationJob.java b/mr/src/main/java/org/apache/mahout/cf/taste/hadoop/als/ParallelALSFactorizationJob.java index 624a8c4..2ce9b61 100644 --- a/mr/src/main/java/org/apache/mahout/cf/taste/hadoop/als/ParallelALSFactorizationJob.java +++ b/mr/src/main/java/org/apache/mahout/cf/taste/hadoop/als/ParallelALSFactorizationJob.java @@ -23,7 +23,6 @@ import java.util.Map; import java.util.Random; import com.google.common.base.Preconditions; -import com.google.common.io.Closeables; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.filecache.DistributedCache; import org.apache.hadoop.fs.FileStatus; @@ -218,11 +217,9 @@ public class ParallelALSFactorizationJob extends AbstractJob { Random random = RandomUtils.getRandom(); FileSystem fs = FileSystem.get(pathToM(-1).toUri(), getConf()); - SequenceFile.Writer writer = null; - try { - writer = new SequenceFile.Writer(fs, getConf(), new Path(pathToM(-1), "part-m-00000"), IntWritable.class, - VectorWritable.class); - + try (SequenceFile.Writer writer = + new SequenceFile.Writer(fs, getConf(), new Path(pathToM(-1), "part-m-00000"), + IntWritable.class, VectorWritable.class)) { IntWritable index = new IntWritable(); VectorWritable featureVector = new VectorWritable(); @@ -236,8 +233,6 @@ public class ParallelALSFactorizationJob extends AbstractJob { featureVector.set(row); writer.append(index, featureVector); } - } finally { - Closeables.close(writer, false); } } http://git-wip-us.apache.org/repos/asf/mahout/blob/85f9ece6/mr/src/main/java/org/apache/mahout/cf/taste/hadoop/item/IDReader.java ---------------------------------------------------------------------- diff --git a/mr/src/main/java/org/apache/mahout/cf/taste/hadoop/item/IDReader.java b/mr/src/main/java/org/apache/mahout/cf/taste/hadoop/item/IDReader.java index b8cf6bb..7797fe9 100644 --- a/mr/src/main/java/org/apache/mahout/cf/taste/hadoop/item/IDReader.java +++ b/mr/src/main/java/org/apache/mahout/cf/taste/hadoop/item/IDReader.java @@ -17,12 +17,12 @@ package org.apache.mahout.cf.taste.hadoop.item; -import com.google.common.collect.Maps; -import com.google.common.io.Closeables; import java.io.IOException; import java.io.InputStream; +import java.util.HashMap; import java.util.Map; import java.util.regex.Pattern; + import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; import org.apache.mahout.cf.taste.impl.common.FastIDSet; @@ -142,10 +142,9 @@ public class IDReader { } private Map<Long, FastIDSet> readUserItemFilter(String pathString) throws IOException { - Map<Long, FastIDSet> result = Maps.newHashMap(); - InputStream in = openFile(pathString); + Map<Long, FastIDSet> result = new HashMap<>(); - try { + try (InputStream in = openFile(pathString)) { for (String line : new FileLineIterable(in)) { try { String[] tokens = SEPARATOR.split(line); @@ -157,8 +156,6 @@ public class IDReader { log.warn("userItemFile line ignored: {}", line); } } - } finally { - Closeables.close(in, true); } return result; @@ -202,9 +199,8 @@ public class IDReader { if (pathString != null) { result = new FastIDSet(); - InputStream in = openFile(pathString); - try { + try (InputStream in = openFile(pathString)){ for (String line : new FileLineIterable(in)) { try { result.add(Long.parseLong(line)); @@ -212,8 +208,6 @@ public class IDReader { log.warn("line ignored: {}", line); } } - } finally { - Closeables.close(in, true); } } http://git-wip-us.apache.org/repos/asf/mahout/blob/85f9ece6/mr/src/main/java/org/apache/mahout/cf/taste/hadoop/item/ItemFilterAsVectorAndPrefsReducer.java ---------------------------------------------------------------------- diff --git a/mr/src/main/java/org/apache/mahout/cf/taste/hadoop/item/ItemFilterAsVectorAndPrefsReducer.java b/mr/src/main/java/org/apache/mahout/cf/taste/hadoop/item/ItemFilterAsVectorAndPrefsReducer.java index d9a7d25..4415a55 100644 --- a/mr/src/main/java/org/apache/mahout/cf/taste/hadoop/item/ItemFilterAsVectorAndPrefsReducer.java +++ b/mr/src/main/java/org/apache/mahout/cf/taste/hadoop/item/ItemFilterAsVectorAndPrefsReducer.java @@ -17,7 +17,10 @@ package org.apache.mahout.cf.taste.hadoop.item; -import com.google.common.collect.Lists; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + import org.apache.hadoop.mapreduce.Reducer; import org.apache.mahout.cf.taste.hadoop.TasteHadoopUtils; import org.apache.mahout.math.RandomAccessSparseVector; @@ -25,9 +28,6 @@ import org.apache.mahout.math.VarIntWritable; import org.apache.mahout.math.VarLongWritable; import org.apache.mahout.math.Vector; -import java.io.IOException; -import java.util.List; - /** * we use a neat little trick to explicitly filter items for some users: we inject a NaN summand into the preference * estimation for those items, which makes {@link org.apache.mahout.cf.taste.hadoop.item.AggregateAndRecommendReducer} @@ -48,8 +48,8 @@ public class ItemFilterAsVectorAndPrefsReducer /* artificial NaN summand to exclude this item from the recommendations for all users specified in userIDs */ vector.set(itemIDIndex, Double.NaN); - List<Long> userIDs = Lists.newArrayList(); - List<Float> prefValues = Lists.newArrayList(); + List<Long> userIDs = new ArrayList<>(); + List<Float> prefValues = new ArrayList<>(); for (VarLongWritable userID : values) { userIDs.add(userID.get()); prefValues.add(1.0f); http://git-wip-us.apache.org/repos/asf/mahout/blob/85f9ece6/mr/src/main/java/org/apache/mahout/cf/taste/hadoop/item/ToVectorAndPrefReducer.java ---------------------------------------------------------------------- diff --git a/mr/src/main/java/org/apache/mahout/cf/taste/hadoop/item/ToVectorAndPrefReducer.java b/mr/src/main/java/org/apache/mahout/cf/taste/hadoop/item/ToVectorAndPrefReducer.java index 74d30cb..9167437 100644 --- a/mr/src/main/java/org/apache/mahout/cf/taste/hadoop/item/ToVectorAndPrefReducer.java +++ b/mr/src/main/java/org/apache/mahout/cf/taste/hadoop/item/ToVectorAndPrefReducer.java @@ -18,9 +18,9 @@ package org.apache.mahout.cf.taste.hadoop.item; import java.io.IOException; +import java.util.ArrayList; import java.util.List; -import com.google.common.collect.Lists; import org.apache.hadoop.mapreduce.Reducer; import org.apache.mahout.math.VarIntWritable; import org.apache.mahout.math.Vector; @@ -35,8 +35,8 @@ public final class ToVectorAndPrefReducer extends Iterable<VectorOrPrefWritable> values, Context context) throws IOException, InterruptedException { - List<Long> userIDs = Lists.newArrayList(); - List<Float> prefValues = Lists.newArrayList(); + List<Long> userIDs = new ArrayList<>(); + List<Float> prefValues = new ArrayList<>(); Vector similarityMatrixColumn = null; for (VectorOrPrefWritable value : values) { if (value.getVector() == null) { http://git-wip-us.apache.org/repos/asf/mahout/blob/85f9ece6/mr/src/main/java/org/apache/mahout/cf/taste/hadoop/item/VectorAndPrefsWritable.java ---------------------------------------------------------------------- diff --git a/mr/src/main/java/org/apache/mahout/cf/taste/hadoop/item/VectorAndPrefsWritable.java b/mr/src/main/java/org/apache/mahout/cf/taste/hadoop/item/VectorAndPrefsWritable.java index 495a920..11d496f 100644 --- a/mr/src/main/java/org/apache/mahout/cf/taste/hadoop/item/VectorAndPrefsWritable.java +++ b/mr/src/main/java/org/apache/mahout/cf/taste/hadoop/item/VectorAndPrefsWritable.java @@ -20,9 +20,9 @@ package org.apache.mahout.cf.taste.hadoop.item; import java.io.DataInput; import java.io.DataOutput; import java.io.IOException; +import java.util.ArrayList; import java.util.List; -import com.google.common.collect.Lists; import org.apache.hadoop.io.Writable; import org.apache.mahout.math.Varint; import org.apache.mahout.math.Vector; @@ -77,8 +77,8 @@ public final class VectorAndPrefsWritable implements Writable { writable.readFields(in); vector = writable.get(); int size = Varint.readUnsignedVarInt(in); - userIDs = Lists.newArrayListWithCapacity(size); - values = Lists.newArrayListWithCapacity(size); + userIDs = new ArrayList<>(size); + values = new ArrayList<>(size); for (int i = 0; i < size; i++) { userIDs.add(Varint.readSignedVarLong(in)); values.add(in.readFloat()); http://git-wip-us.apache.org/repos/asf/mahout/blob/85f9ece6/mr/src/main/java/org/apache/mahout/cf/taste/hadoop/similarity/item/TopSimilarItemsQueue.java ---------------------------------------------------------------------- diff --git a/mr/src/main/java/org/apache/mahout/cf/taste/hadoop/similarity/item/TopSimilarItemsQueue.java b/mr/src/main/java/org/apache/mahout/cf/taste/hadoop/similarity/item/TopSimilarItemsQueue.java index b0ba24d..acb6392 100644 --- a/mr/src/main/java/org/apache/mahout/cf/taste/hadoop/similarity/item/TopSimilarItemsQueue.java +++ b/mr/src/main/java/org/apache/mahout/cf/taste/hadoop/similarity/item/TopSimilarItemsQueue.java @@ -17,13 +17,13 @@ package org.apache.mahout.cf.taste.hadoop.similarity.item; -import com.google.common.collect.Lists; -import org.apache.lucene.util.PriorityQueue; -import org.apache.mahout.cf.taste.similarity.precompute.SimilarItem; - +import java.util.ArrayList; import java.util.Collections; import java.util.List; +import org.apache.lucene.util.PriorityQueue; +import org.apache.mahout.cf.taste.similarity.precompute.SimilarItem; + public class TopSimilarItemsQueue extends PriorityQueue<SimilarItem> { private static final long SENTINEL_ID = Long.MIN_VALUE; @@ -36,7 +36,7 @@ public class TopSimilarItemsQueue extends PriorityQueue<SimilarItem> { } public List<SimilarItem> getTopItems() { - List<SimilarItem> items = Lists.newArrayListWithCapacity(maxSize); + List<SimilarItem> items = new ArrayList<>(maxSize); while (size() > 0) { SimilarItem topItem = pop(); // filter out "sentinel" objects necessary for maintaining an efficient priority queue http://git-wip-us.apache.org/repos/asf/mahout/blob/85f9ece6/mr/src/main/java/org/apache/mahout/cf/taste/impl/common/RefreshHelper.java ---------------------------------------------------------------------- diff --git a/mr/src/main/java/org/apache/mahout/cf/taste/impl/common/RefreshHelper.java b/mr/src/main/java/org/apache/mahout/cf/taste/impl/common/RefreshHelper.java index cc91560..3e03108 100644 --- a/mr/src/main/java/org/apache/mahout/cf/taste/impl/common/RefreshHelper.java +++ b/mr/src/main/java/org/apache/mahout/cf/taste/impl/common/RefreshHelper.java @@ -17,13 +17,13 @@ package org.apache.mahout.cf.taste.impl.common; +import java.util.ArrayList; import java.util.Collection; +import java.util.HashSet; import java.util.List; import java.util.concurrent.Callable; import java.util.concurrent.locks.ReentrantLock; -import com.google.common.collect.Lists; -import com.google.common.collect.Sets; import org.apache.mahout.cf.taste.common.Refreshable; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -47,7 +47,7 @@ public final class RefreshHelper implements Refreshable { * encapsulates the containing object's own refresh logic */ public RefreshHelper(Callable<?> refreshRunnable) { - this.dependencies = Lists.newArrayListWithCapacity(3); + this.dependencies = new ArrayList<>(3); this.refreshLock = new ReentrantLock(); this.refreshRunnable = refreshRunnable; } @@ -99,7 +99,7 @@ public final class RefreshHelper implements Refreshable { * param. */ public static Collection<Refreshable> buildRefreshed(Collection<Refreshable> currentAlreadyRefreshed) { - return currentAlreadyRefreshed == null ? Sets.<Refreshable>newHashSetWithExpectedSize(3) : currentAlreadyRefreshed; + return currentAlreadyRefreshed == null ? new HashSet<Refreshable>(3) : currentAlreadyRefreshed; } /** http://git-wip-us.apache.org/repos/asf/mahout/blob/85f9ece6/mr/src/main/java/org/apache/mahout/cf/taste/impl/eval/AbstractDifferenceRecommenderEvaluator.java ---------------------------------------------------------------------- diff --git a/mr/src/main/java/org/apache/mahout/cf/taste/impl/eval/AbstractDifferenceRecommenderEvaluator.java b/mr/src/main/java/org/apache/mahout/cf/taste/impl/eval/AbstractDifferenceRecommenderEvaluator.java index f6598f3..f926f18 100644 --- a/mr/src/main/java/org/apache/mahout/cf/taste/impl/eval/AbstractDifferenceRecommenderEvaluator.java +++ b/mr/src/main/java/org/apache/mahout/cf/taste/impl/eval/AbstractDifferenceRecommenderEvaluator.java @@ -17,6 +17,7 @@ package org.apache.mahout.cf.taste.impl.eval; +import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.Map; @@ -29,7 +30,7 @@ import java.util.concurrent.Future; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger; -import com.google.common.collect.Lists; +import com.google.common.base.Preconditions; import org.apache.mahout.cf.taste.common.NoSuchItemException; import org.apache.mahout.cf.taste.common.NoSuchUserException; import org.apache.mahout.cf.taste.common.TasteException; @@ -51,8 +52,6 @@ import org.apache.mahout.common.RandomUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.base.Preconditions; - /** * Abstract superclass of a couple implementations, providing shared functionality. */ @@ -142,12 +141,12 @@ public abstract class AbstractDifferenceRecommenderEvaluator implements Recommen Preference newPref = new GenericPreference(userID, prefs.getItemID(i), prefs.getValue(i)); if (random.nextDouble() < trainingPercentage) { if (oneUserTrainingPrefs == null) { - oneUserTrainingPrefs = Lists.newArrayListWithCapacity(3); + oneUserTrainingPrefs = new ArrayList<>(3); } oneUserTrainingPrefs.add(newPref); } else { if (oneUserTestPrefs == null) { - oneUserTestPrefs = Lists.newArrayListWithCapacity(3); + oneUserTestPrefs = new ArrayList<>(3); } oneUserTestPrefs.add(newPref); } @@ -173,7 +172,7 @@ public abstract class AbstractDifferenceRecommenderEvaluator implements Recommen private double getEvaluation(FastByIDMap<PreferenceArray> testPrefs, Recommender recommender) throws TasteException { reset(); - Collection<Callable<Void>> estimateCallables = Lists.newArrayList(); + Collection<Callable<Void>> estimateCallables = new ArrayList<>(); AtomicInteger noEstimateCounter = new AtomicInteger(); for (Map.Entry<Long,PreferenceArray> entry : testPrefs.entrySet()) { estimateCallables.add( @@ -217,7 +216,7 @@ public abstract class AbstractDifferenceRecommenderEvaluator implements Recommen private static Collection<Callable<Void>> wrapWithStatsCallables(Iterable<Callable<Void>> callables, AtomicInteger noEstimateCounter, RunningAverageAndStdDev timing) { - Collection<Callable<Void>> wrapped = Lists.newArrayList(); + Collection<Callable<Void>> wrapped = new ArrayList<>(); int count = 0; for (Callable<Void> callable : callables) { boolean logStats = count++ % 1000 == 0; // log every 1000 or so iterations http://git-wip-us.apache.org/repos/asf/mahout/blob/85f9ece6/mr/src/main/java/org/apache/mahout/cf/taste/impl/eval/GenericRelevantItemsDataSplitter.java ---------------------------------------------------------------------- diff --git a/mr/src/main/java/org/apache/mahout/cf/taste/impl/eval/GenericRelevantItemsDataSplitter.java b/mr/src/main/java/org/apache/mahout/cf/taste/impl/eval/GenericRelevantItemsDataSplitter.java index b0ef18c..f4e4522 100644 --- a/mr/src/main/java/org/apache/mahout/cf/taste/impl/eval/GenericRelevantItemsDataSplitter.java +++ b/mr/src/main/java/org/apache/mahout/cf/taste/impl/eval/GenericRelevantItemsDataSplitter.java @@ -17,7 +17,6 @@ package org.apache.mahout.cf.taste.impl.eval; -import com.google.common.collect.Lists; import org.apache.mahout.cf.taste.common.TasteException; import org.apache.mahout.cf.taste.eval.RelevantItemsDataSplitter; import org.apache.mahout.cf.taste.impl.common.FastByIDMap; @@ -27,6 +26,7 @@ import org.apache.mahout.cf.taste.model.DataModel; import org.apache.mahout.cf.taste.model.Preference; import org.apache.mahout.cf.taste.model.PreferenceArray; +import java.util.ArrayList; import java.util.Iterator; import java.util.List; @@ -62,7 +62,7 @@ public final class GenericRelevantItemsDataSplitter implements RelevantItemsData // If we're dealing with the very user that we're evaluating for precision/recall, if (userID == otherUserID) { // then must remove all the test IDs, the "relevant" item IDs - List<Preference> prefs2 = Lists.newArrayListWithCapacity(prefs2Array.length()); + List<Preference> prefs2 = new ArrayList<>(prefs2Array.length()); for (Preference pref : prefs2Array) { prefs2.add(pref); } http://git-wip-us.apache.org/repos/asf/mahout/blob/85f9ece6/mr/src/main/java/org/apache/mahout/cf/taste/impl/eval/LoadEvaluator.java ---------------------------------------------------------------------- diff --git a/mr/src/main/java/org/apache/mahout/cf/taste/impl/eval/LoadEvaluator.java b/mr/src/main/java/org/apache/mahout/cf/taste/impl/eval/LoadEvaluator.java index abb5ed8..2d27a37 100644 --- a/mr/src/main/java/org/apache/mahout/cf/taste/impl/eval/LoadEvaluator.java +++ b/mr/src/main/java/org/apache/mahout/cf/taste/impl/eval/LoadEvaluator.java @@ -17,11 +17,11 @@ package org.apache.mahout.cf.taste.impl.eval; +import java.util.ArrayList; import java.util.Collection; import java.util.concurrent.Callable; import java.util.concurrent.atomic.AtomicInteger; -import com.google.common.collect.Lists; import org.apache.mahout.cf.taste.common.TasteException; import org.apache.mahout.cf.taste.impl.common.FullRunningAverageAndStdDev; import org.apache.mahout.cf.taste.impl.common.LongPrimitiveIterator; @@ -48,7 +48,7 @@ public final class LoadEvaluator { LongPrimitiveIterator userSampler = SamplingLongPrimitiveIterator.maybeWrapIterator(dataModel.getUserIDs(), sampleRate); recommender.recommend(userSampler.next(), howMany); // Warm up - Collection<Callable<Void>> callables = Lists.newArrayList(); + Collection<Callable<Void>> callables = new ArrayList<>(); while (userSampler.hasNext()) { callables.add(new LoadCallable(recommender, userSampler.next())); } http://git-wip-us.apache.org/repos/asf/mahout/blob/85f9ece6/mr/src/main/java/org/apache/mahout/cf/taste/impl/model/AbstractIDMigrator.java ---------------------------------------------------------------------- diff --git a/mr/src/main/java/org/apache/mahout/cf/taste/impl/model/AbstractIDMigrator.java b/mr/src/main/java/org/apache/mahout/cf/taste/impl/model/AbstractIDMigrator.java index 94f2d0b..6efa6fa 100644 --- a/mr/src/main/java/org/apache/mahout/cf/taste/impl/model/AbstractIDMigrator.java +++ b/mr/src/main/java/org/apache/mahout/cf/taste/impl/model/AbstractIDMigrator.java @@ -19,10 +19,9 @@ package org.apache.mahout.cf.taste.impl.model; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; - import java.util.Collection; -import com.google.common.base.Charsets; +import org.apache.commons.io.Charsets; import org.apache.mahout.cf.taste.common.Refreshable; import org.apache.mahout.cf.taste.model.IDMigrator; http://git-wip-us.apache.org/repos/asf/mahout/blob/85f9ece6/mr/src/main/java/org/apache/mahout/cf/taste/impl/model/file/FileDataModel.java ---------------------------------------------------------------------- diff --git a/mr/src/main/java/org/apache/mahout/cf/taste/impl/model/file/FileDataModel.java b/mr/src/main/java/org/apache/mahout/cf/taste/impl/model/file/FileDataModel.java index da6845e..aa8e8d2 100644 --- a/mr/src/main/java/org/apache/mahout/cf/taste/impl/model/file/FileDataModel.java +++ b/mr/src/main/java/org/apache/mahout/cf/taste/impl/model/file/FileDataModel.java @@ -21,6 +21,7 @@ import java.io.File; import java.io.FileFilter; import java.io.FileNotFoundException; import java.io.IOException; +import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; import java.util.List; @@ -28,6 +29,9 @@ import java.util.Map; import java.util.TreeMap; import java.util.concurrent.locks.ReentrantLock; +import com.google.common.base.Preconditions; +import com.google.common.base.Splitter; +import com.google.common.io.Closeables; import org.apache.mahout.cf.taste.common.Refreshable; import org.apache.mahout.cf.taste.common.TasteException; import org.apache.mahout.cf.taste.impl.common.FastByIDMap; @@ -45,11 +49,6 @@ import org.apache.mahout.common.iterator.FileLineIterator; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.base.Preconditions; -import com.google.common.base.Splitter; -import com.google.common.collect.Lists; -import com.google.common.io.Closeables; - /** * <p> * A {@link DataModel} backed by a delimited file. This class expects a file where each line @@ -207,7 +206,7 @@ public class FileDataModel extends AbstractDataModel { throw new IllegalArgumentException("Did not find a delimiter(pattern) in first line"); } } - List<String> firstLineSplit = Lists.newArrayList(); + List<String> firstLineSplit = new ArrayList<>(); for (String token : delimiterPattern.split(firstLine)) { firstLineSplit.add(token); } @@ -526,7 +525,7 @@ public class FileDataModel extends AbstractDataModel { if (!exists) { if (prefs == null) { - prefs = Lists.newArrayListWithCapacity(2); + prefs = new ArrayList<>(2); ((FastByIDMap<Collection<Preference>>) data).put(userID, prefs); } prefs.add(new GenericPreference(userID, itemID, preferenceValue)); http://git-wip-us.apache.org/repos/asf/mahout/blob/85f9ece6/mr/src/main/java/org/apache/mahout/cf/taste/impl/recommender/GenericItemBasedRecommender.java ---------------------------------------------------------------------- diff --git a/mr/src/main/java/org/apache/mahout/cf/taste/impl/recommender/GenericItemBasedRecommender.java b/mr/src/main/java/org/apache/mahout/cf/taste/impl/recommender/GenericItemBasedRecommender.java index 413db4b..6dc8aa5 100644 --- a/mr/src/main/java/org/apache/mahout/cf/taste/impl/recommender/GenericItemBasedRecommender.java +++ b/mr/src/main/java/org/apache/mahout/cf/taste/impl/recommender/GenericItemBasedRecommender.java @@ -17,7 +17,6 @@ package org.apache.mahout.cf.taste.impl.recommender; -import org.apache.mahout.cf.taste.recommender.CandidateItemsStrategy; import java.util.Collection; import java.util.Collections; import java.util.List; @@ -31,6 +30,7 @@ import org.apache.mahout.cf.taste.impl.common.RefreshHelper; import org.apache.mahout.cf.taste.impl.common.RunningAverage; import org.apache.mahout.cf.taste.model.DataModel; import org.apache.mahout.cf.taste.model.PreferenceArray; +import org.apache.mahout.cf.taste.recommender.CandidateItemsStrategy; import org.apache.mahout.cf.taste.recommender.IDRescorer; import org.apache.mahout.cf.taste.recommender.ItemBasedRecommender; import org.apache.mahout.cf.taste.recommender.MostSimilarItemsCandidateItemsStrategy; http://git-wip-us.apache.org/repos/asf/mahout/blob/85f9ece6/mr/src/main/java/org/apache/mahout/cf/taste/impl/recommender/RandomRecommender.java ---------------------------------------------------------------------- diff --git a/mr/src/main/java/org/apache/mahout/cf/taste/impl/recommender/RandomRecommender.java b/mr/src/main/java/org/apache/mahout/cf/taste/impl/recommender/RandomRecommender.java index ef11f0d..08aa5ae 100644 --- a/mr/src/main/java/org/apache/mahout/cf/taste/impl/recommender/RandomRecommender.java +++ b/mr/src/main/java/org/apache/mahout/cf/taste/impl/recommender/RandomRecommender.java @@ -17,11 +17,11 @@ package org.apache.mahout.cf.taste.impl.recommender; +import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.Random; -import com.google.common.collect.Lists; import org.apache.mahout.cf.taste.common.Refreshable; import org.apache.mahout.cf.taste.common.TasteException; import org.apache.mahout.cf.taste.impl.common.LongPrimitiveIterator; @@ -68,7 +68,7 @@ public final class RandomRecommender extends AbstractRecommender { throws TasteException { DataModel dataModel = getDataModel(); int numItems = dataModel.getNumItems(); - List<RecommendedItem> result = Lists.newArrayListWithCapacity(howMany); + List<RecommendedItem> result = new ArrayList<>(howMany); while (result.size() < howMany) { LongPrimitiveIterator it = dataModel.getItemIDs(); it.skip(random.nextInt(numItems)); http://git-wip-us.apache.org/repos/asf/mahout/blob/85f9ece6/mr/src/main/java/org/apache/mahout/cf/taste/impl/recommender/TopItems.java ---------------------------------------------------------------------- diff --git a/mr/src/main/java/org/apache/mahout/cf/taste/impl/recommender/TopItems.java b/mr/src/main/java/org/apache/mahout/cf/taste/impl/recommender/TopItems.java index 3c27145..f7b4385 100644 --- a/mr/src/main/java/org/apache/mahout/cf/taste/impl/recommender/TopItems.java +++ b/mr/src/main/java/org/apache/mahout/cf/taste/impl/recommender/TopItems.java @@ -17,13 +17,14 @@ package org.apache.mahout.cf.taste.impl.recommender; +import java.util.ArrayList; import java.util.Collections; import java.util.Iterator; import java.util.List; import java.util.PriorityQueue; import java.util.Queue; -import com.google.common.collect.Lists; +import com.google.common.base.Preconditions; import org.apache.mahout.cf.taste.common.NoSuchItemException; import org.apache.mahout.cf.taste.common.NoSuchUserException; import org.apache.mahout.cf.taste.common.TasteException; @@ -33,8 +34,6 @@ import org.apache.mahout.cf.taste.impl.similarity.GenericUserSimilarity; import org.apache.mahout.cf.taste.recommender.IDRescorer; import org.apache.mahout.cf.taste.recommender.RecommendedItem; -import com.google.common.base.Preconditions; - /** * <p> * A simple class that refactors the "find top N things" logic that is used in several places. @@ -83,7 +82,7 @@ public final class TopItems { if (size == 0) { return Collections.emptyList(); } - List<RecommendedItem> result = Lists.newArrayListWithCapacity(size); + List<RecommendedItem> result = new ArrayList<>(size); result.addAll(topItems); Collections.sort(result, ByValueRecommendedItemComparator.getInstance()); return result; @@ -123,7 +122,7 @@ public final class TopItems { if (size == 0) { return NO_IDS; } - List<SimilarUser> sorted = Lists.newArrayListWithCapacity(size); + List<SimilarUser> sorted = new ArrayList<>(size); sorted.addAll(topUsers); Collections.sort(sorted); long[] result = new long[size]; @@ -168,7 +167,7 @@ public final class TopItems { if (size == 0) { return Collections.emptyList(); } - List<GenericItemSimilarity.ItemItemSimilarity> result = Lists.newArrayListWithCapacity(size); + List<GenericItemSimilarity.ItemItemSimilarity> result = new ArrayList<>(size); result.addAll(topSimilarities); Collections.sort(result); return result; @@ -199,7 +198,7 @@ public final class TopItems { if (size == 0) { return Collections.emptyList(); } - List<GenericUserSimilarity.UserUserSimilarity> result = Lists.newArrayListWithCapacity(size); + List<GenericUserSimilarity.UserUserSimilarity> result = new ArrayList<>(size); result.addAll(topSimilarities); Collections.sort(result); return result; http://git-wip-us.apache.org/repos/asf/mahout/blob/85f9ece6/mr/src/main/java/org/apache/mahout/cf/taste/impl/recommender/svd/ALSWRFactorizer.java ---------------------------------------------------------------------- diff --git a/mr/src/main/java/org/apache/mahout/cf/taste/impl/recommender/svd/ALSWRFactorizer.java b/mr/src/main/java/org/apache/mahout/cf/taste/impl/recommender/svd/ALSWRFactorizer.java index 33be59d..0ba5139 100644 --- a/mr/src/main/java/org/apache/mahout/cf/taste/impl/recommender/svd/ALSWRFactorizer.java +++ b/mr/src/main/java/org/apache/mahout/cf/taste/impl/recommender/svd/ALSWRFactorizer.java @@ -17,7 +17,13 @@ package org.apache.mahout.cf.taste.impl.recommender.svd; -import com.google.common.collect.Lists; +import java.util.ArrayList; +import java.util.List; +import java.util.Random; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.TimeUnit; + import org.apache.mahout.cf.taste.common.TasteException; import org.apache.mahout.cf.taste.impl.common.FullRunningAverage; import org.apache.mahout.cf.taste.impl.common.LongPrimitiveIterator; @@ -31,17 +37,10 @@ import org.apache.mahout.math.SequentialAccessSparseVector; import org.apache.mahout.math.Vector; import org.apache.mahout.math.als.AlternatingLeastSquaresSolver; import org.apache.mahout.math.als.ImplicitFeedbackAlternatingLeastSquaresSolver; +import org.apache.mahout.math.map.OpenIntObjectHashMap; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.apache.mahout.math.map.OpenIntObjectHashMap; - -import java.util.List; -import java.util.Random; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import java.util.concurrent.TimeUnit; - /** * factorizes the rating matrix using "Alternating-Least-Squares with Weighted-λ-Regularization" as described in * <a href="http://www.hpl.hp.com/personal/Robert_Schreiber/papers/2008%20AAIM%20Netflix/netflix_aaim08(submitted).pdf"> @@ -191,7 +190,7 @@ public class ALSWRFactorizer extends AbstractFactorizer { queue.execute(new Runnable() { @Override public void run() { - List<Vector> featureVectors = Lists.newArrayList(); + List<Vector> featureVectors = new ArrayList<>(); while (itemIDsFromUser.hasNext()) { long itemID = itemIDsFromUser.nextLong(); featureVectors.add(features.getItemFeatureColumn(itemIndex(itemID))); @@ -229,7 +228,7 @@ public class ALSWRFactorizer extends AbstractFactorizer { queue.execute(new Runnable() { @Override public void run() { - List<Vector> featureVectors = Lists.newArrayList(); + List<Vector> featureVectors = new ArrayList<>(); for (Preference pref : itemPrefs) { long userID = pref.getUserID(); featureVectors.add(features.getUserFeatureColumn(userIndex(userID))); @@ -272,7 +271,7 @@ public class ALSWRFactorizer extends AbstractFactorizer { //TODO find a way to get rid of the object overhead here protected OpenIntObjectHashMap<Vector> itemFeaturesMapping(LongPrimitiveIterator itemIDs, int numItems, double[][] featureMatrix) { - OpenIntObjectHashMap<Vector> mapping = new OpenIntObjectHashMap<Vector>(numItems); + OpenIntObjectHashMap<Vector> mapping = new OpenIntObjectHashMap<>(numItems); while (itemIDs.hasNext()) { long itemID = itemIDs.next(); int itemIndex = itemIndex(itemID); @@ -284,7 +283,7 @@ public class ALSWRFactorizer extends AbstractFactorizer { protected OpenIntObjectHashMap<Vector> userFeaturesMapping(LongPrimitiveIterator userIDs, int numUsers, double[][] featureMatrix) { - OpenIntObjectHashMap<Vector> mapping = new OpenIntObjectHashMap<Vector>(numUsers); + OpenIntObjectHashMap<Vector> mapping = new OpenIntObjectHashMap<>(numUsers); while (userIDs.hasNext()) { long userID = userIDs.next(); http://git-wip-us.apache.org/repos/asf/mahout/blob/85f9ece6/mr/src/main/java/org/apache/mahout/cf/taste/impl/recommender/svd/FilePersistenceStrategy.java ---------------------------------------------------------------------- diff --git a/mr/src/main/java/org/apache/mahout/cf/taste/impl/recommender/svd/FilePersistenceStrategy.java b/mr/src/main/java/org/apache/mahout/cf/taste/impl/recommender/svd/FilePersistenceStrategy.java index d1d23a5..08c038a 100644 --- a/mr/src/main/java/org/apache/mahout/cf/taste/impl/recommender/svd/FilePersistenceStrategy.java +++ b/mr/src/main/java/org/apache/mahout/cf/taste/impl/recommender/svd/FilePersistenceStrategy.java @@ -30,7 +30,6 @@ import java.io.IOException; import java.util.Map; import com.google.common.base.Preconditions; -import com.google.common.io.Closeables; import org.apache.mahout.cf.taste.common.NoSuchItemException; import org.apache.mahout.cf.taste.common.NoSuchUserException; import org.apache.mahout.cf.taste.impl.common.FastByIDMap; @@ -57,25 +56,17 @@ public class FilePersistenceStrategy implements PersistenceStrategy { log.info("{} does not yet exist, no factorization found", file.getAbsolutePath()); return null; } - DataInputStream in = null; - try { + try (DataInputStream in = new DataInputStream(new BufferedInputStream(new FileInputStream(file)))){ log.info("Reading factorization from {}...", file.getAbsolutePath()); - in = new DataInputStream(new BufferedInputStream(new FileInputStream(file))); return readBinary(in); - } finally { - Closeables.close(in, true); } } @Override public void maybePersist(Factorization factorization) throws IOException { - DataOutputStream out = null; - try { + try (DataOutputStream out = new DataOutputStream(new BufferedOutputStream(new FileOutputStream(file)))){ log.info("Writing factorization to {}...", file.getAbsolutePath()); - out = new DataOutputStream(new BufferedOutputStream(new FileOutputStream(file))); writeBinary(factorization, out); - } finally { - Closeables.close(out, false); } } @@ -118,7 +109,7 @@ public class FilePersistenceStrategy implements PersistenceStrategy { int numUsers = in.readInt(); int numItems = in.readInt(); - FastByIDMap<Integer> userIDMapping = new FastByIDMap<Integer>(numUsers); + FastByIDMap<Integer> userIDMapping = new FastByIDMap<>(numUsers); double[][] userFeatures = new double[numUsers][numFeatures]; for (int n = 0; n < numUsers; n++) { @@ -130,7 +121,7 @@ public class FilePersistenceStrategy implements PersistenceStrategy { } } - FastByIDMap<Integer> itemIDMapping = new FastByIDMap<Integer>(numItems); + FastByIDMap<Integer> itemIDMapping = new FastByIDMap<>(numItems); double[][] itemFeatures = new double[numItems][numFeatures]; for (int n = 0; n < numItems; n++) { http://git-wip-us.apache.org/repos/asf/mahout/blob/85f9ece6/mr/src/main/java/org/apache/mahout/cf/taste/impl/recommender/svd/SVDPlusPlusFactorizer.java ---------------------------------------------------------------------- diff --git a/mr/src/main/java/org/apache/mahout/cf/taste/impl/recommender/svd/SVDPlusPlusFactorizer.java b/mr/src/main/java/org/apache/mahout/cf/taste/impl/recommender/svd/SVDPlusPlusFactorizer.java index 8967134..20446f8 100644 --- a/mr/src/main/java/org/apache/mahout/cf/taste/impl/recommender/svd/SVDPlusPlusFactorizer.java +++ b/mr/src/main/java/org/apache/mahout/cf/taste/impl/recommender/svd/SVDPlusPlusFactorizer.java @@ -17,14 +17,14 @@ package org.apache.mahout.cf.taste.impl.recommender.svd; -import com.google.common.collect.Lists; -import com.google.common.collect.Maps; +import org.apache.mahout.cf.taste.common.TasteException; import org.apache.mahout.cf.taste.impl.common.FastIDSet; import org.apache.mahout.cf.taste.impl.common.LongPrimitiveIterator; +import org.apache.mahout.cf.taste.model.DataModel; import org.apache.mahout.common.RandomUtils; -import org.apache.mahout.cf.taste.common.TasteException; -import org.apache.mahout.cf.taste.model.DataModel; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Random; @@ -80,13 +80,13 @@ public final class SVDPlusPlusFactorizer extends RatingSGDFactorizer { } /* get internal item IDs which we will need several times */ - itemsByUser = Maps.newHashMap(); + itemsByUser = new HashMap<>(); LongPrimitiveIterator userIDs = dataModel.getUserIDs(); while (userIDs.hasNext()) { long userId = userIDs.nextLong(); int userIndex = userIndex(userId); FastIDSet itemIDsFromUser = dataModel.getItemIDsFromUser(userId); - List<Integer> itemIndexes = Lists.newArrayListWithCapacity(itemIDsFromUser.size()); + List<Integer> itemIndexes = new ArrayList<>(itemIDsFromUser.size()); itemsByUser.put(userIndex, itemIndexes); for (long itemID2 : itemIDsFromUser) { int i2 = itemIndex(itemID2); http://git-wip-us.apache.org/repos/asf/mahout/blob/85f9ece6/mr/src/main/java/org/apache/mahout/cf/taste/impl/similarity/precompute/FileSimilarItemsWriter.java ---------------------------------------------------------------------- diff --git a/mr/src/main/java/org/apache/mahout/cf/taste/impl/similarity/precompute/FileSimilarItemsWriter.java b/mr/src/main/java/org/apache/mahout/cf/taste/impl/similarity/precompute/FileSimilarItemsWriter.java index ca0e0b2..631ec9b 100644 --- a/mr/src/main/java/org/apache/mahout/cf/taste/impl/similarity/precompute/FileSimilarItemsWriter.java +++ b/mr/src/main/java/org/apache/mahout/cf/taste/impl/similarity/precompute/FileSimilarItemsWriter.java @@ -23,8 +23,8 @@ import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStreamWriter; -import com.google.common.base.Charsets; import com.google.common.io.Closeables; +import org.apache.commons.io.Charsets; import org.apache.mahout.cf.taste.similarity.precompute.SimilarItem; import org.apache.mahout.cf.taste.similarity.precompute.SimilarItems; import org.apache.mahout.cf.taste.similarity.precompute.SimilarItemsWriter; http://git-wip-us.apache.org/repos/asf/mahout/blob/85f9ece6/mr/src/main/java/org/apache/mahout/classifier/ConfusionMatrix.java ---------------------------------------------------------------------- diff --git a/mr/src/main/java/org/apache/mahout/classifier/ConfusionMatrix.java b/mr/src/main/java/org/apache/mahout/classifier/ConfusionMatrix.java index 0baa4bf..73ba521 100644 --- a/mr/src/main/java/org/apache/mahout/classifier/ConfusionMatrix.java +++ b/mr/src/main/java/org/apache/mahout/classifier/ConfusionMatrix.java @@ -19,17 +19,17 @@ package org.apache.mahout.classifier; import java.util.Collection; import java.util.Collections; +import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.Map; +import com.google.common.base.Preconditions; import org.apache.commons.lang3.StringUtils; import org.apache.commons.math3.stat.descriptive.moment.Mean; import org.apache.mahout.cf.taste.impl.common.FullRunningAverageAndStdDev; import org.apache.mahout.cf.taste.impl.common.RunningAverageAndStdDev; import org.apache.mahout.math.DenseMatrix; import org.apache.mahout.math.Matrix; - -import com.google.common.base.Preconditions; -import com.google.common.collect.Maps; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -42,7 +42,7 @@ import org.slf4j.LoggerFactory; */ public class ConfusionMatrix { private static final Logger LOG = LoggerFactory.getLogger(ConfusionMatrix.class); - private final Map<String,Integer> labelMap = Maps.newLinkedHashMap(); + private final Map<String,Integer> labelMap = new LinkedHashMap<>(); private final int[][] confusionMatrix; private int samples = 0; private String defaultLabel = "unknown"; @@ -333,7 +333,7 @@ public class ConfusionMatrix { m.set(r, c, confusionMatrix[r][c]); } } - Map<String,Integer> labels = Maps.newHashMap(); + Map<String,Integer> labels = new HashMap<>(); for (Map.Entry<String, Integer> entry : labelMap.entrySet()) { labels.put(entry.getKey(), entry.getValue()); } http://git-wip-us.apache.org/repos/asf/mahout/blob/85f9ece6/mr/src/main/java/org/apache/mahout/classifier/RegressionResultAnalyzer.java ---------------------------------------------------------------------- diff --git a/mr/src/main/java/org/apache/mahout/classifier/RegressionResultAnalyzer.java b/mr/src/main/java/org/apache/mahout/classifier/RegressionResultAnalyzer.java index 5d8b9ed..35c11ee 100644 --- a/mr/src/main/java/org/apache/mahout/classifier/RegressionResultAnalyzer.java +++ b/mr/src/main/java/org/apache/mahout/classifier/RegressionResultAnalyzer.java @@ -19,10 +19,10 @@ package org.apache.mahout.classifier; import java.text.DecimalFormat; import java.text.NumberFormat; +import java.util.ArrayList; import java.util.List; import java.util.Locale; -import com.google.common.collect.Lists; import org.apache.commons.lang3.StringUtils; /** @@ -56,7 +56,7 @@ public class RegressionResultAnalyzer { */ public void addInstance(double actual, double result) { if (results == null) { - results = Lists.newArrayList(); + results = new ArrayList<>(); } results.add(new Result(actual, result)); }
