2015-11-01 166 views
0

创建顶点给定一个字符串阿帕奇星火从字符串

val s = "My-Spark-App" 

如何顶点与星火以下方式产生的呢?

“我 - ”, “伊苏”, “SP”, “温泉”, “平价”, “方舟”, “RK-”, “千”, “-Ap”, “应用”

这个问题可以并行吗?

回答

3

这仅仅是一个简单的滑动在一个字符串的事:

val n: Int = 3 

val vertices: Seq[(VertexId, String)] = s.sliding(n) 
    .zipWithIndex 
    .map{case (s, i) => (i.toLong, s)} 
    .toSeq 

sc.parallelize(vertices) 

可以在问题被并行化?

是的,但是如果它是单个字符串,它很可能没有意义。如果你想要:

import org.apache.spark.rdd.RDD 

val vertices: RDD[(VertexId, String)] = sc.parallelize(s) 
    .sliding(n) 
    .zipWithIndex 
    .map{case (cs, i) => (i, cs.mkString)} 
+0

谢谢你的回答。如果字符串很大,这是否合理? –

+0

如果巨大意味着千兆字节(2^32 - 1元素是一个限制无论如何),那么肯定。 – zero323

相关问题