[HADOOP] 돼지를 사용하여 날짜 형식의 파일을로드
HADOOP돼지를 사용하여 날짜 형식의 파일을로드
나는 다음과 같은 방법으로 데이터 집합을 가지고있다.
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년 1월 23일는) 날짜입니다. 나는 다음 명령 돼지를 사용으로 위의 데이터를로드하려합니다. 다음은 내가 파일을로드하기 위해 사용하고있는 코드입니다.
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,,)
내가 어떻게 날짜 열을 읽을 수 있습니다.
친절이 점에서 나에게 도움이됩니다.
감사합니다.
해결법
-
==============================
1.로드 chararray 같은 날짜와 다음은 날짜 형식으로 변환
로드 chararray 같은 날짜와 다음은 날짜 형식으로 변환
처럼:
파일 2 = FOREACH 파일 날짜로 TODATE (일자, "일 / 월 / 년 ')를 생성 ....
참조를 위해이 링크를 시도하십시오, 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
-
==============================
2.S. cararare로드 데이터를 포함한다.
S. cararare로드 데이터를 포함한다.
chararray, ROLE_ID : chararray, USER_PW : chararray, NUM_PWD_HISTORY : INT, PWD_HISTORY : chararray, PWD_LAST_MOD_TIME : INT, NUM_PWD_ATTEMPTS (USER_ID AS 파일 LOAD = 'FI_USER_CREDS_TBL_T.txt'를 이용 PigStorage ( '') 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 : chararray);
--ToDate 내장 기능이 날짜로 변환하는 데 사용되는 형식을 지정해야
파일 2 = FOREACH 파일 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-생성 ETL_INSERT_DATE AS DD ');
파일 2를 설명; 파일 2 덤프;
from https://stackoverflow.com/questions/35767273/loading-datetime-format-files-using-pig by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] MySQL과 HBase와 연결 (0) | 2019.10.17 |
---|---|
[HADOOP] InputFormat 결정 (0) | 2019.10.17 |
[HADOOP] 종속 관계없이 원격 컴퓨터에 종속 JAR의 Maven 프로젝트 (0) | 2019.10.17 |
[HADOOP] 하둡 데이터 노드 시작 실패 - 잘못된 구성 : 네임 노드 주소 dfs.namenode.servicerpc 주소 또는 dfs.namenode.rpc 주소가 구성되지 (0) | 2019.10.17 |
[HADOOP] 하둡 항아리를 실행하면 어떻게 네이티브 물어 도서관의 (0) | 2019.10.17 |