将日期字符串作为变量传递给 spark sql

时间:2021-04-12 07:09:50

标签: sql apache-spark apache-spark-sql

我无法在 spark sql 中传递日期字符串

当我运行这个

spark.sql(""" SELECT cast ('2021-04-12' as date) """)
> DataFrame[CAST(2021-04-12 AS DATE): date]

但是当我想将日期字符串作为变量传递时出现错误

 date_str = '2021-04-12'
 spark.sql(""" SELECT cast ({} as date) """.format(date_str))

 > AnalysisException: cannot resolve 'CAST(((2021 - 4) - 12) AS DATE)' 
 > due to data type mismatch: cannot cast int to date; line 1 pos 7;

我不确定如何传递该变量。

1 个答案:

答案 0 :(得分:1)

您可以在查询中添加单引号,它应该适合您

spark.sql(""" SELECT cast ('{}' as date) """.format(date_str))