date_format 在工作簿环境中失败

date_format failing in the workbook environment

在 Palantir Foundry Code Workbook 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.legacy.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 spec 中,不允许使用四分之一。

Spark 告诉您它允许底层 Java 实现不允许的格式字符串。我建议在 Apache Spark Jira

上提交错误