pushdownQuery
client(spark 어플리케이션)에서 쿼리를 날리지만, 해당 쿼리를 원천 소스(database)에서 쿼리가 수행되도록 위임하는 것이다. 이렇게 하면 client에서는 필요한 데이터만 읽어올 수 있다. 다만, database에 부하가 생길 수 있으니 유의해야한다.
pushdownQuery = """ (select distinct(colname) from tablename) as tb """
dbDataFrame = spark.read.format("jdbc").option("url", url).option("dbtable", pushdownQuery).option("driver", driver).load()
https://spark.apache.org/docs/latest/sql-data-sources-jdbc.html