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
上提交错误
在 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
上提交错误