You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Data Fusion管道Wrangler节点set-column生成指定格式时间戳报错求助

问题:Data Fusion Wrangler节点生成指定格式的系统时间戳字段

我正在开发Data Fusion数据融合管道,其中包含一个Wrangler节点,尝试创建新字段存储格式为yyyy-MM-dd'T'HH-mm-ss的系统时间戳。

我曾尝试使用以下指令:

set-column :sysdate (${logicalStartTime(yyyy-MM-dd'T'HH-mm-ss)})

但收到报错:

Caused by: io.cdap.wrangler.api.DirectiveParseException: Error encountered while parsing 'set-column' : Error encountered while compiling '( 2022 -12-01T16-29-32 ) ' at line '1' and column '14'. Make sure a valid jexl transformation is provided.

我还尝试过:

set-column :sysdate (${logicalStartTime(yyyy-MM-ddHH-mm-ss)})

结果得到类似"1877"的数值(因被解析为数字减法);也试过:

set-column :sysdate (${logicalStartTime(yyyyMMddHHmmss)})

但格式不符合要求,且该字段只能存储为String类型。

请问正确的指令语句是什么?


正确指令及说明

可用的正确指令写法

选择以下任意一种即可生成符合yyyy-MM-dd'T'HH-mm-ss格式的字符串类型时间戳字段:

  1. 单引号包裹格式字符串并转义内部单引号:
set-column :sysdate '${logicalStartTime('yyyy-MM-dd\'T\'HH-mm-ss')}'
  1. 双引号包裹格式字符串并转义内部双引号:
set-column :sysdate "${logicalStartTime(\"yyyy-MM-dd'T'HH-mm-ss\")}"

问题根源解释

Wrangler的set-column依赖JEXL表达式解析逻辑,未被引号包裹的格式字符串中的-会被当作算术减法运算符处理,导致解析报错或计算出错误的数值结果。通过将格式字符串用引号包裹,并转义其中的嵌套引号,可以确保格式规则被完整识别,最终生成符合要求的时间戳字符串。


内容的提问来源于stack exchange,提问作者ars_nei

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 14:05:22