我认为有些数据可能很脏;具体而言,应该是日期的一列可能有几行不是正确的日期格式。
如何使用pig,我可以从我的文件中获取本列中没有正确日期的所有行吗?
答案 0 :(得分:0)
我最终用Python创建了一个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;