aboutsummaryrefslogtreecommitdiff
path: root/graph
diff options
context:
space:
mode:
authorReynold Xin <rxin@cs.berkeley.edu>2013-06-29 15:58:59 -0700
committerReynold Xin <rxin@cs.berkeley.edu>2013-06-29 15:58:59 -0700
commit79b5eaa4e2a32817a50e583554a53ed7ab72e0b2 (patch)
tree79c24c50ae661466da00f48c38e38f2e26f3517a /graph
parent758ceff778a5590297fe9b712d9642f009f9b628 (diff)
downloadspark-79b5eaa4e2a32817a50e583554a53ed7ab72e0b2.tar.gz
spark-79b5eaa4e2a32817a50e583554a53ed7ab72e0b2.tar.bz2
spark-79b5eaa4e2a32817a50e583554a53ed7ab72e0b2.zip
Added a 64bit string hash function.
Diffstat (limited to 'graph')
-rw-r--r--graph/src/main/scala/spark/graph/util/HashUtils.scala21
1 files changed, 21 insertions, 0 deletions
diff --git a/graph/src/main/scala/spark/graph/util/HashUtils.scala b/graph/src/main/scala/spark/graph/util/HashUtils.scala
new file mode 100644
index 0000000000..0dfaef4c48
--- /dev/null
+++ b/graph/src/main/scala/spark/graph/util/HashUtils.scala
@@ -0,0 +1,21 @@
+package spark.graph.util
+
+
+object HashUtils {
+
+ /**
+ * Compute a 64-bit hash value for the given string.
+ * See http://stackoverflow.com/questions/1660501/what-is-a-good-64bit-hash-function-in-java-for-textual-strings
+ */
+ def hash(str: String): Long = {
+ var h = 1125899906842597L
+ val len = str.length
+ var i = 0
+
+ while (i < len) {
+ h = 31 * h + str(i)
+ i += 1
+ }
+ h
+ }
+}