如何在Spark中一次应用多个方法?

时间:2016-01-05 06:03:31

标签: scala apache-spark

df是一个包含所有汽车数据的数据帧(| id | time | speed | gps | ... |);

trip是一个包含(id,start,end)的系列列表,它从df生成。

method1用于获取每个id的统计信息。 method2用于获取每个id的其他统计信息。

喜欢这段代码:

val a = method1(trips,df,sc)
val b = method2(trips,df,sc)
val c = method3(trips,df,sc)
val d = method4(trips,df,sc)
val e = method5(trips,df,sc)
val f = method6(trips,df,sc)

因为每种方法都需要一定的时间,有没有办法同时应用分配方法? a,b ...,f的类型是数据帧。

1 个答案:

答案 0 :(得分:0)

是的,你可以借助于collectAsync(),countAsync()等异步操作在spark集群中同时运行多个作业。

 yo just set configuration with context .set("spark.scheduler.mode", "FAIR") 

并使用异步操作,因此所有作业都以异步方式运行并返回将来,因此您的方法也会返回未来,因此所有方法都会一次运行。