我的sparksql查询或dataframe在哪里执行?

fnatzsnv  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(287)

我有以下代码,它将从mysql数据库读取表:

val jdbcDF = sparkSession.read
  .format("jdbc")
  .option("url", "idbc:mysql location")
  .option("dbtable", "tablename")
  .option("user", "root")
  .option("password", "root")
  .load().where(some condition)

我的问题:
加载时,我根据特定条件过滤记录。那么在mysql服务器上执行条件查询并返回结果的位置呢?
如果我只是从任何数据库加载表。我的表记录将如何分布在集群中,谁负责这样做?

3bygqnnd

3bygqnnd1#

除非执行某些操作,否则spark不会执行任何操作,即使是过滤条件,也不会将数据复制到内存中。这是懒惰的评价。
一旦执行了操作,您编写的代码就会将数据拉入内存,然后应用过滤器。如果您想在mysql中执行filter,那么在dbtable选项中传递查询而不是表名。

相关问题