Palantir Foundry Workbook中Spark SQL date_format函数Q格式标识报错问题
问题解答
配置诱因确认
spark.sql.legacy.timeParserPolicy=LEGACY确实是该问题的直接诱因:
- 当该配置设为
LEGACY时,Spark会使用兼容3.0之前版本的SimpleDateFormat规则,该规则下不支持Q作为季度格式字符 - 只有当配置设为
CORRECTED(Spark 3.0+默认值)时,才支持Q/q等季度相关的格式字符
Palantir Foundry Code Workbook修改配置的方法
分两种场景操作:
1. 单个Spark SQL节点临时生效
在SQL代码开头添加配置设置语句即可,每次运行该节点都会自动应用配置:
SET spark.sql.legacy.timeParserPolicy = CORRECTED; SELECT date_format('2021-01-01',"yyyy-Q");
运行后即可得到预期输出2021-1
2. 整个Code Workbook全局生效
如果需要workbook内所有Spark节点都使用该配置,可按以下步骤操作:
- 打开目标Workbook,点击页面右上角的⚙️ Settings(设置)按钮
- 在弹出的设置面板中找到Spark Configuration(Spark配置)板块
- 点击添加配置项,键填入
spark.sql.legacy.timeParserPolicy,值填入CORRECTED - 保存设置后重启Workbook的Spark会话即可生效
注意:如果你的Foundry实例管理员对全局Spark配置做了强制覆盖,可能需要联系管理员确认是否允许自定义修改该参数。
内容的提问来源于stack exchange,提问作者ivanhoe1982
相关产品推荐
相关产品推荐

