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

Pig - Get all records with invalid date format

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

如何使用 pig 从我的文件中获取此列中没有正确日期的所有行?

我最终在 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;