spark-instrumented-optimizer/src/scala/spark/Utils.scala

54 lines
1.2 KiB
Scala
Raw Normal View History

2010-03-29 19:17:55 -04:00
package spark
import java.io._
2010-10-04 15:01:05 -04:00
import scala.collection.mutable.ArrayBuffer
object Utils {
2010-03-29 19:17:55 -04:00
def serialize[T](o: T): Array[Byte] = {
val bos = new ByteArrayOutputStream
val oos = new ObjectOutputStream(bos)
oos.writeObject(o)
oos.close
return bos.toByteArray
}
def deserialize[T](bytes: Array[Byte]): T = {
val bis = new ByteArrayInputStream(bytes)
val ois = new ObjectInputStream(bis)
return ois.readObject.asInstanceOf[T]
}
def deserialize[T](bytes: Array[Byte], loader: ClassLoader): T = {
val bis = new ByteArrayInputStream(bytes)
val ois = new ObjectInputStream(bis) {
override def resolveClass(desc: ObjectStreamClass) =
Class.forName(desc.getName, false, loader)
}
return ois.readObject.asInstanceOf[T]
}
2010-10-04 15:01:05 -04:00
def isAlpha(c: Char) = {
(c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z')
}
def splitWords(s: String): Seq[String] = {
val buf = new ArrayBuffer[String]
var i = 0
while (i < s.length) {
var j = i
while (j < s.length && isAlpha(s.charAt(j))) {
j += 1
}
if (j > i) {
buf += s.substring(i, j);
}
i = j
while (i < s.length && !isAlpha(s.charAt(i))) {
i += 1
}
}
return buf
}
2010-03-29 19:17:55 -04:00
}