PySpark数据帧下推

PySpark数据帧下推,pyspark,apache-spark-sql,pyspark-dataframes,Pyspark,Apache Spark Sql,Pyspark Dataframes,我在SQLServer中有下表 CREATE TABLE test ( id smallint, val, varchar(200) ); 我尝试在Python中使用SparkSQL的DataFrame API进行查询,如下所示: df = sql.read.format("jdbc") .option("url", url) .option("query", "S

我在SQLServer中有下表

CREATE TABLE test (
  id smallint,
  val, varchar(200)
);
我尝试在Python中使用SparkSQL的DataFrame API进行查询,如下所示:

df = sql.read.format("jdbc")
             .option("url", url)
             .option("query", "SELECT * FROM test")
             .option("driver", driver)
             .load()
df = df.filter(df['id'].isin([1,2,3]))
我希望能够使用
isin()
将筛选器下推到数据库中的
id
列,如下所示:

df = sql.read.format("jdbc")
             .option("url", url)
             .option("query", "SELECT * FROM test")
             .option("driver", driver)
             .load()
df = df.filter(df['id'].isin([1,2,3]))
但是,由于id列是数据库中的
smallint
,因此谓词不会向下推。如果我尝试使用相同的语法来过滤
val
列,谓词将被成功按下

有人知道是否可以将
smallint
列的谓词从Python下推到数据库中吗