【发布时间】:2020-01-28 13:41:13
【问题描述】:
我正在尝试将 DateTime 值从 Python (jython) 组件传递到 Python (python 3) 组件,但它似乎不起作用
有一个 Matillion 作业变量 myvar,类型为 DateTime,默认值为 2028-01-28 12:00:00
Jython 代码如下:
from dateutil.parser import parse
from datetime import timedelta
print('class', myvar.getClass())
myvar = parse(str(myvar.toInstant())).replace(tzinfo=None)
print('myvar', repr(myvar))
myvar2 = myvar + timedelta(days=1)
print('myvar2', repr(myvar2))
context.updateVariable('myvar', myvar2)
print('myvar', repr(myvar))
我已经看到 myvar 的类型错误 (str) Jython 执行结束
('class', <type 'com.matillion.bi.emerald.server.scripting.MatillionDate'>)
('myvar', 'datetime.datetime(2028, 1, 28, 12, 0)')
('myvar2', 'datetime.datetime(2028, 1, 29, 12, 0)')
('myvar', u'2028-01-29 12:00:00.0')
我假设我无法更新传递datetime 实例的变量。我想我必须将日期时间转换回 com.matillion.bi.emerald.server.scripting.MatillionDate,因为这似乎是 Jython 中 myvar 的类型。
问题是如何将我的日期时间转换为MatillionDate?
【问题讨论】:
-
您需要使用 Jython 吗? (您需要访问数据库吗?)如果不需要,请尝试使用 Python 3 解释器。 DateTime 更新在 Matillion for Snowflake 1.42.7 中对我有用。我也可以让它在 Jython 中工作,但我发现 Java/Python/Jython 类型令人困惑并且在 Matillion 中的文档记录很差,所以我尽可能避免使用 Jython。
标签: matillion