猪 - 获取所有无效日期格式的记录

时间:2016-09-15 19:55:53

标签: hadoop apache-pig

我认为有些数据可能很脏;具体而言,应该是日期的一列可能有几行不是正确的日期格式。

如何使用pig,我可以从我的文件中获取本列中没有正确日期的所有行吗?

1 个答案:

答案 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;