Python 如何使用Spark将日期变量传递给Teradata?

Python 如何使用Spark将日期变量传递给Teradata?,python,apache-spark,jupyter-notebook,teradata,Python,Apache Spark,Jupyter Notebook,Teradata,环顾四周,但还没找到这个问题。。。我在Jupyter笔记本中编写python代码,我们使用的很多数据集都是Teradata,因此我的代码通常如下所示: cs = ''' ( select * from SST01.data where snap_dt = '2020-08-31' )foo''' dfclnt_status = spark.read.format('jdbc') \ .option('url', 'jdbc:teradata://teradataservernameh

环顾四周,但还没找到这个问题。。。我在Jupyter笔记本中编写python代码,我们使用的很多数据集都是Teradata,因此我的代码通常如下所示:

cs = '''
( 
select 
*
from SST01.data
where snap_dt = '2020-08-31'
)foo'''
dfclnt_status = spark.read.format('jdbc') \
    .option('url', 'jdbc:teradata://teradataservernamehere') \
    .option('driver', 'com.teradata.jdbc.TeraDriver') \
    .option('user', 'redacted') \
    .option('password', PASS) \
    .option('dbtable', cs) \
    .load()
END_DT='2020-08-31'
我知道,在spark中,当对配置单元表运行代码时,我可以使用{VAR}传递日期变量,但当我尝试在对Teradata的查询中应用相同的内容时,我会遇到以下错误:

Py4JJavaError: An error occurred while calling o233.load.
: java.sql.SQLException: [Teradata Database] [TeraJDBC 16.30.00.00] [Error 3535] [SQLState 22003] A character string failed conversion to a numeric value.
如何将日期变量传递到Teradata中

编辑:我的变量如下所示:

cs = '''
( 
select 
*
from SST01.data
where snap_dt = '2020-08-31'
)foo'''
dfclnt_status = spark.read.format('jdbc') \
    .option('url', 'jdbc:teradata://teradataservernamehere') \
    .option('driver', 'com.teradata.jdbc.TeraDriver') \
    .option('user', 'redacted') \
    .option('password', PASS) \
    .option('dbtable', cs) \
    .load()
END_DT='2020-08-31'

最简单的方法可能是将字段显式转换为日期,如下所示:

to_date('2020-08-31')
如果仍然出现错误,请查看DDL表。错误表明该字段是数字字段