[英]Loading datetime format files using PIG
我有以下方式的數據集。
ravi,savings,avinash,2,char,33,F,22,44,12,13,33,44,22,11,10,22,2006-01-23
avinash,current,sandeep,3,char,44,M,33,11,10,12,33,22,39,12,23,19,2001-02-12
supreeth,savings,prabhash,4,char,55,F,22,12,23,12,44,56,7,88,34,23,1995-03-11
lavi,current,nirmesh,5,char,33,M,11,10,33,34,56,78,54,23,445,66,1999-06-15
Venkat,savings,bunny,6,char,11,F,99,12,34,55,33,23,45,66,23,23,2016-05-18
最后一列(示例:2006-01-23)是日期。 我正在嘗試使用PIG通過以下命令加載上述數據。 以下是我用來加載文件的代碼。
file = LOAD 'FI_USER_CREDS_TBL_T.txt'
USING PigStorage(',') AS (USER_ID:chararray,
ROLE_ID:chararray,
USER_PW:chararray,
NUM_PWD_HISTORY:int,
PWD_HISTORY:chararray,
PWD_LAST_MOD_TIME:int,
NUM_PWD_ATTEMPTS:int,
NEW_USER_FLG:chararray,
LOGIN_TIME_LOW:int,
LOGIN_TIME_HIGH:int,
DISABLED_FROM_DATE:int,
DISABLED_UPTO_DATE:int,
PW_EXPY_DATE:int,
ACCT_EXPY_DATE:int,
ACCT_INACTIVE_DAYS:int,
LAST_ACCESS_TIME:int,
TS_CNT:int,
DTL__CAPXTIMESTAMP:int,
ETL_INSERT_DATE:datetime);
但是它不是在讀取日期列,而是在使用轉儲文件命令后給出以下輸出。
(ravi,savings,avinash,2,char,33,,22,44,12,13,33,44,22,11,10,22,,)
(avinash,current,sandeep,3,char,44,,33,11,10,12,33,22,39,12,23,19,,)
(supreeth,savings,prabhash,4,char,55,,22,12,23,12,44,56,7,88,34,23,,)
(lavi,current,nirmesh,5,char,33,,11,10,33,34,56,78,54,23,445,66,,)
(Venkat,savings,bunny,6,char,11,,99,12,34,55,33,23,45,66,23,23,,)
我如何閱讀日期欄。
在這方面請幫助我。
謝謝。
將日期作為chararray加載,然后轉換為日期格式
喜歡:
file2 = FOREACH文件生成ToDate(date,'dd / MM / yyyy')AS date,....
請嘗試以下鏈接以供參考: http://pig.apache.org/docs/r0.11.0/api/org/apache/pig/builtin/ToDate.html或http://docs.oracle.com/javase/7/ docs / api / java / text / SimpleDateFormat.html
將數據加載為chararray。
file = LOAD'FI_USER_CREDS_TBL_T.txt'使用PigStorage(',')AS(USER_ID:chararray,ROLE_ID:chararray,USER_PW:chararray,NUM_PWD_HISTORY:int,PWD_HISTORY:chararray,PWD_LAST_MOD_TIME:int,NUM_PWD_INUSER,INT_NUM_PWD_ATTEMPTS: :int,LOGIN_TIME_HIGH:int,DISABLED_FROM_DATE:int,DISABLED_UPTO_DATE:int,PW_EXPY_DATE:int,ACCT_EXPY_DATE:int,ACCT_INACTIVE_DAYS:int,LAST_ACCESS_TIME:int,TS_CNT:int,DTL_CAPXTIMESTAMP;
--ToDate BuiltIn函數用於轉換為日期時間,需要指定格式
文件2 = FOREACH文件GENERATE USER_ID,ROLE_ID,USER_PW,NUM_PWD_HISTORY,PWD_HISTORY,PWD_LAST_MOD_TIME,NUM_PWD_ATTEMPTS,NEW_USER_FLG,LOGIN_TIME_LOW,LOGIN_TIME_HIGH,DISABLED_FROM_DATE,DISABLED_UPTO_DATE,PW_EXPY_DATE,ACCT_EXPY_DATE,ACCT_INACTIVE_DAYS,LAST_ACCESS_TIME,TS_CNT,DTL__CAPXTIMESTAMP,TODATE(ETL_INSERT_DATE,“YYYY-MM- dd')AS ETL_INSERT_DATE;
描述文件2; 轉儲文件2;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.