如何在GraphX中映射compactBuffer

时间:2015-06-06 19:20:30

标签: scala apache-spark spark-streaming spark-graphx

我有一个像这样的compactBuffer:

CompactBuffer(((8,1.2),((1,1.3),1)), ((8,1.2),((4,1.1),1)), ((8,1.2),((7,2.1),1)), ((8,1.2),((8,1.2),1)), ((8,1.2),((10,1.1),1)))
CompactBuffer(((12,7.2),((3,5.2),1)), ((12,7.2),((12,7.2),1)))
CompactBuffer(((5,3.1),((2,2.7),1)), ((5,3.1),((5,3.1),1)), ((5,3.1),((6,3.2),1)), ((5,3.1),((9,2.2),1)), ((5,3.1),((11,2.8),1)), ((5,3.1),((13,5.1),1)))

如何映射compactBuffer并将函数(我将其编码)传递到该映射中? 提前谢谢!

2 个答案:

答案 0 :(得分:2)

CompactBuffer是一个优化的可变集合,用于保存少量项目。它实现了Seq[T]特征,因此您所有众所周知的Seq操作都可以应用于CompactBuffer

因此,要转换CompactBuffer的内容,map操作应该可以解决问题:

val v = CompactBuffer(((12,7.2),((3,5.2),1)), ((12,7.2),((12,7.2),1)))
val transf = v.map(tuple => ... )

所有其他收集操作也将有效:flatMapfiltertakedrop,...

答案 1 :(得分:0)

如果你的意思是不知道CompactBuffer课程,那该怎么做:

compactBuffer match {
  case CompactBuffer(data) => yourFunction(data)
}