date_format在工作簿环境中失败



在Palantir Foundry代码工作簿Spark SQL节点中(或在SQL模式下的Spark控制台中(,这是有效的:

SELECT date_format('2021-01-01',"yyyy-MM")
2021-01

但执行一个要求四分之一的模式并没有:

SELECT date_format('2021-01-01',"yyyy-Q")
java.lang.IllegalArgumentException: Illegal pattern character 'Q'

这是spark 3.2.0 中的合法模式

https://spark.apache.org/docs/latest/sql-ref-datetime-pattern.html

日期时间模式-Spark 3.2.0文档

是否有一些环境配置更改了这种行为?有一个开关集spark.sql.legate.timeParserPolicy=legacy可能与此有关。如果这是罪魁祸首-如何在工作簿环境中更改它?

您发现了一个错误!

当我运行这个时,在堆栈跟踪中,我得到:

Caused by: java.lang.IllegalArgumentException: Illegal pattern character 'Q'
at java.base/java.text.SimpleDateFormat.compile(SimpleDateFormat.java:845)
at java.base/java.text.SimpleDateFormat.initialize(SimpleDateFormat.java:653)
at java.base/java.text.SimpleDateFormat.<init>(SimpleDateFormat.java:624)
at org.apache.spark.sql.catalyst.util.LegacySimpleTimestampFormatter.sdf$lzycompute(TimestampFormatter.scala:229)
...

在SimpleDateFormat.java规范中,不允许使用Quarter。

Spark告诉您,它允许使用底层Java实现所不允许的格式字符串。我建议在Apache Spark Jira 上提交一个错误

最新更新