Сжатие фрейма данных PySpark

#pyspark #apache-spark-sql #pyspark-dataframes

#apache-spark-sql #pyspark

Вопрос:

У меня есть следующая таблица в SQLServer

 CREATE TABLE test (
  id smallint,
  val, varchar(200)
);
  

Я пытаюсь запросить его, используя API фрейма данных SparkSQL на Python, вот так:

 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 столбца, предикат будет успешно удален.

Кто-нибудь знает, возможно ли отправить предикат из Python в базу данных для smallint столбца?