import scala.concurrent.duration.{Duration, DurationInt}
val sc = SparkSession.builder.master("local[*]").getOrCreate()
implicit val ec = ExecutionContext.global
val result = load(Seq("t1.txt", "t2.txt", "t3.txt"), sc).zipWithIndex
.map { case (rddFuture, idx) =>
rddFuture.map( rdd =>
println(s"Rdd with index $idx has ${rdd.count()}")
)
}
Await.result(Future.sequence(result), 1 hour)
1条答案
按热度按时间eimct9ow1#
如果您希望并发读取/处理RDD,可以利用scala.concurrent.future(或zio、cats等中的效果)。
加载函数的示例代码如下:
使用此函数的示例代码:
例如,提供了默认的全局executioncontext,但是可以配置为在自定义的executioncontext中运行代码(只需用自己的executioncontext替换这个隐式的valec)