Загрузить как строки
A = load 'data.txt' using PigStorage('\n') as (line:chararray);
Разделить на все пробелы
B = FOREACH A GENERATE FLATTEN(STRSPLIT(line, '\\s+')) as (year:int,temp:int,quality:chararray);
Фильтр по действительным строкам
C = FILTER B BY quality IN ('0','1','2','3','4','5','6','7','8','9');
(Опционально) Приведение к int
D = FOREACH C GENERATE year,temp,(int)quality;
В Spark я бы начал с соответствия регулярному выражению ожидаемого формата.
val cleanRows = sc.textFile("data.txt")
.filter(line => line.matches("(?:\\d+\\s+){2}\\d+"))