Apache spark 多方法上的单数据帧并行执行
我有一个SparkSQL数据框架,其中包含员工记录的集合 i、 e id、姓名、薪资、部门。我需要执行多个操作并行操作 在同一数据帧上 我使用Scala特性实现了这一点,但我不知道这段代码是否能在集群中正常工作 代码:Apache spark 多方法上的单数据帧并行执行,apache-spark,Apache Spark,我有一个SparkSQL数据框架,其中包含员工记录的集合 i、 e id、姓名、薪资、部门。我需要执行多个操作并行操作 在同一数据帧上 我使用Scala特性实现了这一点,但我不知道这段代码是否能在集群中正常工作 代码: val pool = Executors.newFixedThreadPool(2) implicit val xc=ExecutionContext.fromExecutorService(pool) val taskC = findEmpRank(df) val t
val pool = Executors.newFixedThreadPool(2)
implicit val xc=ExecutionContext.fromExecutorService(pool)
val taskC = findEmpRank(df)
val taskA = doEmpDistinct(df)
val taskB = doEmpSum(df)
Await.result(Future.sequence(Seq(taskC, taskA, taskB)), Duration.Inf)
}
def doEmpDistinct(df: DataFrame)(implicit xc: ExecutionContext) = Future {
println("get distinct empno list")
df.distinct.select("empno").show
}
def doEmpSum(df: DataFrame)(implicit xc: ExecutionContext) = Future {
println("get AGGREGATE empno list")
df.agg(sum("sal")).show()
}
def findEmpRank(df: DataFrame)(implicit xc: ExecutionContext) = Future {
println("get EMP RANK")
val partitionWindow =
Window.partitionBy(col("deptno")).orderBy(col("sal").desc)
val rankTest = rank().over(partitionWindow)
df.select(col("*"), rankTest as "rank").show
}
在没有Scala API的情况下,是否仍然可以使用spark并行执行此任务。是的,我们可以使用Fair Scheduler,但我的问题是,它能否保证将等待所有函数完成,就像等待一样。结果是Scala 是的,我们可以使用Fair Scheduler,但我的问题是它能保证所有功能都会像await.result一样在scala中完成吗 这并不能回答这个问题。您可以搜索类似的问题,或参考页面右侧的相关和链接问题以查找答案。如果您有一个相关但不同的问题,请提出一个新问题,并包括一个指向此问题的链接,以帮助提供上下文。请参阅:提问,获得答案,不要分心这并不能提供问题的答案。您可以搜索类似的问题,或参考页面右侧的相关和链接问题以查找答案。如果您有一个相关但不同的问题,请提出一个新问题,并包括一个指向此问题的链接,以帮助提供上下文。看:问问题,得到答案,不要分心