Apache Spark从String创建顶​​点

时间:2015-11-01 16:06:58

标签: apache-spark spark-graphx

给定一个字符串

val s = "My-Spark-App"

如何使用Spark以下列方式创建顶点?

“我 - ”,“y-S”,“ - Sp”,“Spa”,“par”,“ark”,“rk-”,“k-A”,“ - Ap”,“App”

这个问题可以并行化吗?

1 个答案:

答案 0 :(得分: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)}