0
더러운 것으로 생각되는 데이터가 있습니다. 특히, 날짜 여야 한 열에 올바른 날짜 형식이 아닌 행이 몇 개있을 수 있습니다.돼지 - 잘못된 날짜 형식의 모든 레코드 얻기
어떻게 돼지를 사용하면 파일에서이 열에 적절한 날짜가없는 모든 행을 가져올 수 있습니까?
더러운 것으로 생각되는 데이터가 있습니다. 특히, 날짜 여야 한 열에 올바른 날짜 형식이 아닌 행이 몇 개있을 수 있습니다.돼지 - 잘못된 날짜 형식의 모든 레코드 얻기
어떻게 돼지를 사용하면 파일에서이 열에 적절한 날짜가없는 모든 행을 가져올 수 있습니까?
나는 결국 파이썬에서 UDF를 만들었습니다.
from pig_util import outputSchema
from datetime import datetime
date_format = '%Y-%m-%d %H:%M:%S'
@outputSchema('number:is_date')
def is_date(date):
try:
datetime.strptime(date, date_format)
except ValueError:
return 0
return 1
그리고 돼지
는 :REGISTER 'myudf.py' using jython as udf
raw = load '/path/to/file.csv'
USING PigStorage(',')
AS (id:chararray, consumption_date:chararray);
modified = FOREACH raw
GENERATE id, consumption_month, udf.is_date(consumption_month) as is_date;
bad = FILTER modified BY is_date == 0;
dump bad;
당신은 한 걸음 더 나아가 그것을 받아 UDF 필터 (outputSchema에 대한 부울)로 UDF를 해제 할 수 있습니다. https://pig.apache.org/docs/r0.16.0/udf.html 필터만으로 목록을 얻을 수 있습니다. – patrungel