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的类型是数据帧。
答案 0 :(得分:0)
是的,你可以借助于collectAsync(),countAsync()等异步操作在spark集群中同时运行多个作业。
yo just set configuration with context .set("spark.scheduler.mode", "FAIR")
并使用异步操作,因此所有作业都以异步方式运行并返回将来,因此您的方法也会返回未来,因此所有方法都会一次运行。