DataFrameReader создается (доступно) исключительно с использованием SparkSession.read. Это означает, что он создается при выполнении следующего кода (пример загрузки файла csv)
val df = spark.read.csv("path1,path2,path3")
Spark предоставляет подключаемую платформу поставщика данных (API источника данных) для развертывания вашего собственного источника данных. По сути, он предоставляет интерфейсы, которые можно реализовать для чтения / записи в ваш пользовательский источник данных. Вот где обычно реализуются отсечение секций и выталкивание фильтров предикатов.
Databricks Spark поддерживает множество встроенных источников данных (наряду с возможностями предиката выталкивания и сокращения разделов) согласно https://docs.databricks.com/data/data-sources/index.html.
Итак, если необходимо загрузить данные из таблицы JDB C и укажите условия фильтрации, см. следующий пример
// Note: The parentheses are required.
val pushdown_query = "(select * from employees where emp_no < 10008) emp_alias"
val df = spark.read.jdbc(url=jdbcUrl, table=pushdown_query, properties=connectionProperties)
display(df)
Подробнее см. здесь https://docs.databricks.com/data/data-sources/sql-databases.html