Это не то, что я смог сделать из коробки, и это то, что можно сделать вне скрипта с помощью какого-то скрипта-обертки или скрипта-помощника (bash, perl и т. Д.).Если вы напишите скрипт с именем last10.sh
, который выведет ваши последние 10 файлов, разделенные запятой:
$ ./last10.sh
/input/file38,/input/file39,...,/input/file48
Что-то вроде этого должно сработать для последних 10 файлов:
hadoop fs -ls /input/ | sort -k6,7 | tail -n10 | awk '{print $8}' | tr '\n' ','
вы можете сделать:
$ pig -p files="`last10.sh`" my_mr.pig
Затем в вашем скрипте pig выполните:
data = LOAD '$files'
USING com.twitter.elephantbird.pig.load.LzoTokenizedLoader('\\t')
AS (i1, i2, i3);
Pig загружает отдельные файлы, если они разделены запятой, как это.Это было бы эквивалентно выполнению:
data = LOAD '/input/file38,/input/file39,...,/input/file48'
USING com.twitter.elephantbird.pig.load.LzoTokenizedLoader('\\t')
AS (i1, i2, i3);