请求协助:使用Jolt实现季度字段的推导与拼接处理
Jolt转换实现季度与年份拼接需求
需求说明
需要将包含season和year字段的JSON数组,按以下规则转换:
- 季节映射:Spring→Q1、Summer→Q2、Fall→Q3、Holiday→Q4
- 年份提取最后两位字符
- 拼接映射后的季度与年份后两位,生成
Quarter字段
Jolt转换规范
[ // 提取数组内对象的字段到根节点 { "operation": "shift", "spec": { "*": { "season": "season", "year": "year" } } }, // 处理季节映射、年份截取与字段拼接 { "operation": "modify-overwrite-beta", "spec": { "quarterMap": { "Spring": "Q1", "Summer": "Q2", "Fall": "Q3", "Holiday": "Q4" }, "yearLastTwo": "=substring(@(1,year), 2, 4)", "Quarter": "=concat(@(1,quarterMap.@(1,season)), '-', @(1,yearLastTwo))" } }, // 仅保留最终目标字段 { "operation": "shift", "spec": { "Quarter": "Quarter" } } ]
规范解释
- 第一步Shift操作:把输入数组中唯一对象的
season和year字段提取到根节点,简化后续处理层级。 - 第二步Modify操作:
quarterMap定义季节到季度代码的映射关系;yearLastTwo通过substring函数截取年份字符串的最后两位;Quarter通过concat函数将映射后的季度代码与年份后缀拼接成目标格式。
- 第三步Shift操作:过滤掉中间生成的临时字段,只保留最终的
Quarter字段。
示例验证
- 输入1:
[ { "season": "Fall", "year": "2019" } ]
输出1:
{ "Quarter":"Q3-19" }
- 输入2:
[ { "season": "Spring", "year": "2021" } ]
输出2:
{ "Quarter":"Q1-21" }
内容的提问来源于stack exchange,提问作者Mahesh Manchineni
相关产品推荐
相关产品推荐

