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;
我有一些数据我认为可能是脏的;具体来说,应该是日期的一列可能有几行的日期格式不正确。
如何使用 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;