SQL语法兼容TIMESTAMP/DATE特殊字符
问题
在Spark 3.2.0社区版本之后,将不再支持TIMESTAMP(*)或DATE(*)的语法,其中*代表如下特殊时间字符:
- epoch
- today
- yesterday
- tomorrow
- now
默认只支持timestamp '*' 或者data '*'的格式,如果使用之前的语法插入数据表,会得到NULL值。
回答
在Spark客户端中执行以下命令设置“spark.sql.convert.special.datetime”参数即可兼容之前的语法。
set spark.sql.convert.special.datetime=true;