繁体   English   中英

java.lang.String对象[]的数据类型与值meta [Date]不对应

[英]The data type of java.lang.String object [] does not correspond to value meta [Date]

将Pentaho与Python插件配合使用时,我有一个传入的CSV,其中包含两个字段MonthYear ,我需要根据这些字段创建Date Month包含完整的月名称,例如“一月”,“二月”等。

为此,我创建了pandas脚本(“创建日期”),然后添加Day字段并将其设置为1,然后从Month获取月份号,然后创建date_tw字段并从YearMonthDay创建日期时间。

create date输出所有字段,并将新的date_tw字段作为Date类型。

在此处输入图片说明

python脚本的字段输出之一:

在此处输入图片说明

Data Output创建一个表,并且date_twDate类型。


到目前为止,我们已经:从python重新创建了date_tw ,它被馈送到Data Output ,后者已经使用date_tw作为Date类型创建了表。 两者都是Date类型。

但是我得到这个错误:

date_tw日期:数据类型错误:java.lang.String对象[06/01/2017]的数据类型与值meta [Date]不对应

看来我应该在CSV文件输入步骤中关闭“惰性转换” 这也完成了。

Pentaho中的Pandas脚本:

import pandas as pd
import calendar as cal

df['Day'] = 1
mapping = {v : k for k, v in enumerate(cal.month_name)}
df['Month'] = df['Month'].map(mapping) 
df['date_tw'] = ''
df['date_tw'] = pd.to_datetime(df[['Year', 'Month', 'Day']], format='%Y/%m/%d')
df['date_tw'] = df['date_tw'].dt.strftime('%m/%d/%Y')

result_df = df

PostgreSQL表字段:

在此处输入图片说明

数据类型匹配并且延迟转换已关闭。 我想念什么?

Pentaho元数据包含日期类型的每个对象的日期格式。 并且Python scriptdate_tw的格式为dd / mm / yyyy。

您可以通过右键单击Python script并选择Output fields...来检查任何字段的类型和格式。 检查它是否是dd / mm / yyyy nd而不是您的语言环境。

如果不是,并且Python script不允许您指定日期格式,请在最后一行(只有一行)上使用strftime进行操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM