Я пытаюсь выполнить запрос pyspark, объявив переменные даты и используя эти переменные в самом запросе. Однако выходные данные не отражают фильтр даты. мой существующий код ниже
strt_dt = "'2018-01-01'"
end_dt = "'2019-12-31'"
df = sqlc.sql('Select * from tbl where dt > {0} and dt < {1}'.format(strt_dt,end_dt))
, когда я проверяю максимальный (dt) df выше, он больше, чем 2019-12-31, что не должно быть в соответствии с кодом. Я могу дополнительно отфильтровать эту искру df для требуемого диапазона дат, используя приведенный ниже код (источник из Pyspark: фильтровать кадр данных на основе нескольких условий
strt_dt = '2018-01-01'
end_dt = '2019-12-31'
df = sqlc.sql('Select * from tbl')
df.filter((col('dt') >= F.lit(strt_dt)) & (col('dt') < F.lit(end_dt)))
Я хочу избежать фильтрации spark df, поскольку я не хочу создавать df со всеми данными. Пожалуйста, дайте мне знать, что я делаю неправильно в первом наборе кода.
PS: когда я объявляю переменные, отличные от типа данных date, в В первом блоке кода переменная работает для этого имени столбца, т. е. он указывает c на сегодняшний день тип данных, хранящийся в виде строки в моей таблице HIVE.
Заранее спасибо