Spark-jdbc读取所有发生在驱动程序上?

问题描述 投票:0回答:2

我从Jdbc源(oracle)中读取了一些火花,我指定了lowerbound,upperbound,numpartitions,partitioncolumn,但在Web ui上,所有读取都发生在驱动程序上,而不是工作程序,执行程序上。这是预期的吗?

apache-spark jdbc apache-spark-sql
2个回答
0
投票

在Spark框架中,通常您在转换中编写的任何代码(例如map,flatMap等)都将在执行程序上执行。要调用转换,您需要使用要在其上进行计算的数据集创建的RDD。要实现RDD,您需要调用一个操作,以便将转换应用于数据。

我相信您的情况,您已经编写了一个读取jdbc数据的spark应用程序。如果是这样,它将全部在驱动程序上执行,而不是执行程序。

如果还没有,请尝试使用this API创建数据框。


0
投票

不,如果在具有足够执行程序的合适群集上运行,则不应这样做。

https://docs.databricks.com/data/data-sources/sql-databases.html#manage-parallelism应该可以帮助您。

© www.soinside.com 2019 - 2024. All rights reserved.