эквивалентный способ запуска свиной UDF с внешним файлом элемента файла рабочего процесса oozie

У меня есть рабочий процесс oozie, в основном с работой со свиньями.

В workflow.xml есть одна строка <file>${hdfsPath}/hdfsLineItem.txt#LineItem.txt</file>

Этот файл используется в одной из UDF, которая косвенно используется другими UDF, фрагмент исходного кода in = new DataInputStream(new FileInputStream("./LineItem.txt"));

У меня нет разрешения на отправку вакансий oozie, но я могу отправить вакансию свиньи. Однако я не могу найти эквивалентный способ отправить задание свиньи с этим внешним текстовым файлом.

Я скопировал этот файл в свою область и запустил pig myscript.pig -file LineItem.txt, но UDF выдаст IOException. Кто-нибудь знает эквивалентный способ представить работу свиньи?


person Ray Wu    schedule 12.08.2014    source источник


Ответы (1)


решить мою проблему другим способом. Текстовый файл также хранится на hdfs, я изменил UDF и изменил его на

FileSystem fs = FileSystem.get(UDFContext.getUDFContext().getJobConf());
DataInputStream in = new fs.open(new Path("_hdfsPath_/hdfsLineItem.txt"));

и остальной код тот же. Наконец-то я мог отправить свою работу свиньи напрямую.

person Ray Wu    schedule 12.08.2014