我有一个输入作为一个csv文件,我正试图与Pig处理。在csv中,有一个日期列,其中包含一些行的损坏值。在将todate()函数应用于表中的日期列之前,请建议我使用一种机制来过滤那些已损坏的行(具有损坏的日期列) FOREACH...GENERATE
声明。
我的数据的样本格式是:
a、 2010年1月21日8:26
b、 2010年12月33日8:26
c、 42,我堕落了
d、 2013年12月30日9:26
我希望能够加载它,然后将其转换为:
假设csv文件加载到y(名称、id、日期)
X = FOREACH Y GENERATE ToDate(date, 'mm/dd/yyyy HH:mm') AS newdate;
我想申请 FILTER
至 Y
在上面的语句之前过滤掉以c开头的行。因为,照原样,当我 DUMP X;
.
1条答案
按热度按时间pn9klfpd1#
两次todate失败,
1) 当缺少日期或语法错误时,使用正则表达式筛选所有日期,
2) 当日期进入dst时(https://en.wikipedia.org/wiki/daylight_saving_time)你的时区。你必须手动过滤。