File tree Expand file tree Collapse file tree 3 files changed +13
-13
lines changed
mllib/src/main/scala/org/apache/spark/mllib Expand file tree Collapse file tree 3 files changed +13
-13
lines changed Original file line number Diff line number Diff line change @@ -21,7 +21,7 @@ import java.lang.{Iterable => JavaIterable}
21
21
22
22
import scala .collection .JavaConverters ._
23
23
import scala .collection .mutable
24
- import scala .collection .mutable .ArrayBuffer
24
+ import scala .collection .mutable .ArrayBuilder
25
25
26
26
import com .github .fommil .netlib .BLAS .{getInstance => blas }
27
27
@@ -272,7 +272,7 @@ class Word2Vec extends Serializable with Logging {
272
272
def hasNext : Boolean = iter.hasNext
273
273
274
274
def next (): Array [Int ] = {
275
- var sentence = new ArrayBuffer [Int ]
275
+ val sentence = ArrayBuilder .make [Int ]
276
276
var sentenceLength = 0
277
277
while (iter.hasNext && sentenceLength < MAX_SENTENCE_LENGTH ) {
278
278
val word = bcVocabHash.value.get(iter.next())
@@ -283,7 +283,7 @@ class Word2Vec extends Serializable with Logging {
283
283
case None =>
284
284
}
285
285
}
286
- sentence.toArray
286
+ sentence.result()
287
287
}
288
288
}
289
289
}
Original file line number Diff line number Diff line change 17
17
18
18
package org .apache .spark .mllib .tree
19
19
20
- import scala .collection .mutable
21
20
import scala .collection .JavaConverters ._
22
- import scala .collection .mutable .ArrayBuffer
21
+ import scala .collection .mutable
22
+ import scala .collection .mutable .ArrayBuilder
23
23
24
24
import org .apache .spark .Logging
25
25
import org .apache .spark .annotation .Experimental
@@ -1136,7 +1136,7 @@ object DecisionTree extends Serializable with Logging {
1136
1136
logDebug(" stride = " + stride)
1137
1137
1138
1138
// iterate `valueCount` to find splits
1139
- val splits = new ArrayBuffer [Double ]
1139
+ val splitsBuilder = ArrayBuilder .make [Double ]
1140
1140
var index = 1
1141
1141
// currentCount: sum of counts of values that have been visited
1142
1142
var currentCount = valueCounts(0 )._2
@@ -1154,13 +1154,13 @@ object DecisionTree extends Serializable with Logging {
1154
1154
// makes the gap between currentCount and targetCount smaller,
1155
1155
// previous value is a split threshold.
1156
1156
if (previousGap < currentGap) {
1157
- splits.append( valueCounts(index - 1 )._1)
1157
+ splitsBuilder += valueCounts(index - 1 )._1
1158
1158
targetCount += stride
1159
1159
}
1160
1160
index += 1
1161
1161
}
1162
1162
1163
- splits.toArray
1163
+ splitsBuilder.result()
1164
1164
}
1165
1165
}
1166
1166
Original file line number Diff line number Diff line change @@ -19,7 +19,7 @@ package org.apache.spark.mllib.util
19
19
20
20
import java .util .StringTokenizer
21
21
22
- import scala .collection .mutable .{ArrayBuffer , ListBuffer }
22
+ import scala .collection .mutable .{ArrayBuilder , ListBuffer }
23
23
24
24
import org .apache .spark .SparkException
25
25
@@ -51,7 +51,7 @@ private[mllib] object NumericParser {
51
51
}
52
52
53
53
private def parseArray (tokenizer : StringTokenizer ): Array [Double ] = {
54
- val values = ArrayBuffer .empty [Double ]
54
+ val values = ArrayBuilder .make [Double ]
55
55
var parsing = true
56
56
var allowComma = false
57
57
var token : String = null
@@ -67,14 +67,14 @@ private[mllib] object NumericParser {
67
67
}
68
68
} else {
69
69
// expecting a number
70
- values.append( parseDouble(token) )
70
+ values += parseDouble(token)
71
71
allowComma = true
72
72
}
73
73
}
74
74
if (parsing) {
75
75
throw new SparkException (s " An array must end with ']'. " )
76
76
}
77
- values.toArray
77
+ values.result()
78
78
}
79
79
80
80
private def parseTuple (tokenizer : StringTokenizer ): Seq [_] = {
@@ -114,7 +114,7 @@ private[mllib] object NumericParser {
114
114
try {
115
115
java.lang.Double .parseDouble(s)
116
116
} catch {
117
- case e : Throwable =>
117
+ case e : NumberFormatException =>
118
118
throw new SparkException (s " Cannot parse a double from: $s" , e)
119
119
}
120
120
}
You can’t perform that action at this time.
0 commit comments