2016-09-15 80 views

回答

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; 
+1

你可以把它一步,把你的UDF成UDF 過濾器(Boolean對於outputSchema)。 https://pig.apache.org/docs/r0.16.0/udf.html您將只使用過濾器來獲取您的列表。 – patrungel