Я хочу создать UDF в свинью с использованием TIKA для обработки изображения в HDFS.Создание UDF в свинью для обработки изображений
Ниже мой код, но я получаю ClassNotFound Exception
public String exec(Tuple input) throws ExecException, IOException {
try {
if (input == null || input.size() == 0 || input.get(0) == null)
{
return null;
}
} catch (ExecException ex) {
Logger.getLogger(Check.class.getName()).log(Level.SEVERE, null, ex);
}
String s="";
ByteArrayInputStream b = (ByteArrayInputStream)input.get(0);
ContentHandler contenthandler = new BodyContentHandler();
Metadata metadata = new Metadata();
Parser parser = new AutoDetectParser();
ParseContext parseCtx = new ParseContext();
try {
parser.parse(b, contenthandler, metadata,parseCtx);
} catch (SAXException ex) {
Logger.getLogger(Check.class.getName()).log(Level.SEVERE, null, ex);
} catch (TikaException ex) {
Logger.getLogger(Check.class.getName()).log(Level.SEVERE, null, ex);
}
System.out.println("Mime: " + metadata.get(Metadata.CONTENT_TYPE));
return metadata.get(Metadata.CONTENT_TYPE);
}
Input файлов изображений, который хранится в HDFS в неизвестном формате.
Выход Мне нужен выход как тип файла. Но я получаю исключение TikaException и java Class для указанного выше кода.
Ошибка
2014-11-21 12:00:56,417 [main] INFO org.apache.pig.backend.hadoop.executionengi
ne.mapReduceLayer.MapReduceLauncher - Failed!
2014-11-21 12:00:56,483 [main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 10
66: Unable to open iterator for alias f. Backend error : java.lang.ClassNotFound
Exception: org.apache.tika.exception.TikaException
PigScript
a= load '/image.jpeg' as x;
b= group a all;
f= foreach b generate package.check(a)
Если кто-нибудь знает решение вышеуказанной проблемы. Пожалуйста, направляйте меня как можно скорее.
Пожалуйста, укажите значение входного вы передаете и вывод, полученный с полным трассировки стека .. –
я редактировал содержание, пожалуйста, найти выше. – Mallieswari
Как насчет трассировки стека? –