在scala中保存RDD for for循环

时间:2018-04-23 09:45:10

标签: scala apache-spark rdd

我有一个for循环,我每次迭代都会得到一个RDD,我想保存以供以后使用。保存和访问这些RDD的最有效方法是什么?

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

Samplecode,没有RDD和火花细节:

scala> val res = (for (i <- (1 to 10);
     |  j=2*i;
     |  k= s"i: $i j: $j") yield k)
res: scala.collection.immutable.IndexedSeq[String] = Vector(i: 1 j: 2, i: 2 j: 4, i: 3 j: 6, i: 4 j: 8, i: 5 j: 10, i: 6 j: 12, i: 7 j: 14, i: 8 j: 16, i: 9 j: 18, i: 10 j: 20)

scala> res(0)
res201: String = i: 1 j: 2

scala> res(1)
res202: String = i: 2 j: 4

所以只需产生你的RDD,并在Seq中收集它们以便以后使用。

你也可以产生多个val

yield (i, j, k)

稍后解构元组N,过滤它,分组等等。