簡體   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