如何节流jdbc数据在spark中的读取?

ubof19bj  于 2023-03-03  发布在  Apache
关注(0)|答案(1)|浏览(170)

在我的spark job中,我从MySQL数据源阅读数据,因为我在很短的时间内提取了如此大的数据,MySQL的CPU会出现峰值。我想降低数据读取速度,这样我的数据库就不会过载。增加或减少分区并不重要,因为它只会分成更小的块,但本质上仍然是并行读取批量数据。
Spark JDBC读取代码

spark
              .read()
              .options(options)
              .jdbc(
                  "URL",
                  "table",
                  dbConfig.getPartitioningColumn(),
                  lowebound,
                  upperBound,
                  numbOfPartitions,
                  new Properties())
kmpatx3s

kmpatx3s1#

您可以通过不阅读整个表来减小数据的大小。您可以只运行执行某些聚合的查询或只返回所需数据的筛选,而不是传递表名并读取整个数据。这将加快执行速度。

spark.read 
  .format("jdbc") 
  .option("query", "<query>") 
  .option("numPartitions",5) 
  .......
  .......
  .load()

相关问题