我正在写一个mapreduce作业,它以一个zip文件作为输入,zip文件包含不同类型的文档,如docx odt pdf txt,我正在使用tika解析器来解析文档。
下面是我的mapper方法的代码片段
public void map(Text key, BytesWritable value, Context context)throws IOException, InterruptedException {
------------------------------
------------------------------
logger.info("Length:\t" + value.getLength());
byte[] bytesbefore = value.getBytes();
logger.info("CONTENT BEFORE" + new String(bytesbefore));
InputStream in = new ByteArrayInputStream(bytesbefore);
Metadata metadata = new Metadata();
String mimeType = new Tika().detect(in);
metadata.set(Metadata.CONTENT_TYPE, mimeType);
Parser parser = new AutoDetectParser();
ContentHandler handler = new BodyContentHandler(
value.getLength());
try {
parser.parse(in, handler, metadata, new ParseContext());
} catch (SAXException e1) {
logger.info(e1.getMessage());
e1.printStackTrace();
} catch (TikaException e1) {
logger.info(e1.getMessage());
e1.printStackTrace();
}
in.close();
logger.info("Content AFTER" + handler.toString());
------------------------------
------------------------------
}
输出写入hbase,
解析后文档内容为空
我有什么遗漏吗??
暂无答案!
目前还没有任何答案,快来回答吧!