Возникла проблема с запуском Pig в локальном режиме, с ошибкой в ​​java udf - PullRequest
0 голосов
/ 12 октября 2018

У меня есть Pig UDF (написанный на Java), который считывает данные из файла JSON, представленного в HDFS, и выполняет дальнейшие вычисления.

Ниже приведена строка кода (последняя строка во фрагменте), которая даетошибка.Поскольку он не может подключиться к HDFS, чтобы найти файл.

Path path = new Path(filename);
FileSystem fs = FileSystem.get(new Configuration());
br = new BufferedReader(new InputStreamReader(fs.open(path)));

Но мой модуль передачи данных проходит, никаких проблем с этим.

Я хочу написать общий код, который запускается воба режима исполнения локальный и mapreduce.

1 Ответ

0 голосов
/ 12 октября 2018

Я думаю, вам нужно было бы вызвать что-то вроде этого

FileSystem fs = path.getFileSystem(UDFContext.getUDFContext().getJobConf()); 

Но если ваши hdf-файлы имеют какую-либо защиту, я ожидаю, что это тоже не удастся.Локальный режим Pig предназначен исключительно для локальных и пропускает загрузку любой конфигурации из-за этого.https://github.com/apache/pig/blob/a6c1a59eb42b600229bbe7f92b74363b515c1dfc/src/org/apache/pig/Main.java#L356-L358

...