PySpark数据框下推

问题描述

我在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()

我希望能够使用id将过滤器下推到数据库中的isin()列,如下所示:

df = df.filter(df['id'].isin([1,2,3]))

但是,由于id列在数据库中是smallint,因此谓词不会被下推。如果我尝试使用相同的语法来过滤val列,则谓词将成功下推。

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

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)