四处寻找,但还没找到这个问题。。。我正在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()
我知道,在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中?
编辑:我的变量如下所示:
END_DT='2020-08-31'
1条答案
按热度按时间mv1qrgav1#
最简单的方法可能是显式地将字段转换为日期,如下所示:
如果仍然出现错误,请查看ddl表。错误说明字段是数字。